记一个工作中的小问题。
环境:
- 中间件 weblogic
- war包应用部署
- spring boot 框架
- 实现一个war包通过脚本配合满足不同环境部署(避免由于配置文件不一,出多个版本war包)
问题:
springboot框架,但打成war包部署情况下(历史问题),由于每个环境配置文件参数不同,需编译打包各环境多个war包,相当麻烦。
解决方案:
- 普通springboot框架项目,参考springboot启动指定不同环境版本配置文件
项目下配置文件结构:
application.yml
application-dev.yml
application-pro.yml
application-uat.yml
启动项目时 使用命令:
java -jar -Dspring.profiles.active=dev springboot-demo.jar
java -jar -Dspring.profiles.active=pro springboot-demo.jar
java -jar -Dspring.profiles.active=uat springboot-demo.jar
- weblogic+springboot
使用webliogic部署的情况下,其添加命令位置为:
找到weblogic启动命令 :vi $WEBLOGIC_HOME/domain/bin/startWeblogic.sh
(每个环境下,将其startWeblogic java 启动命令行追加 -Dspring.profiles.active 参数 ,不要加到 ${JAVA_OPTIONS} 之后。)
if [ "${WLS_REDIRECT_LOG}" = "" ] ; then
echo "Starting WLS with line:"
echo "${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} ${LAUNCH_ARGS} -Dweblogic.Name=${SERVER_NAME} -Djava.security.policy=${WLS_POLICY_FILE} ${JAVA_OPTIONS} ${PROXY_SETTINGS} ${SERVER_CLASS}"
${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} ${LAUNCH_ARGS} -Dweblogic.Name=${SERVER_NAME} -Djava.security.policy=${WLS_POLICY_FILE} -Dspring.profiles.active=dev ${JAVA_OPTIONS} ${PROXY_SETTINGS} ${SERVER_CLASS}
else
echo "Redirecting output from WLS window to ${WLS_REDIRECT_LOG}"
${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} ${LAUNCH_ARGS} -Dweblogic.Name=${SERVER_NAME} -Djava.security.policy=${WLS_POLICY_FILE} -Dspring.profiles.active=dev ${JAVA_OPTIONS} ${PROXY_SETTINGS} ${SERVER_CLASS} >"${WLS_REDIRECT_LOG}" 2>&1
fi
- host 域名绕着走
配置文件中如果,仅涉及IP地址的配置,如 数据库地址IP,请求服务端地址IP等,可将所有配置文件配置为一个指定域名,在每个环境服务器中通过hosts 进行host转换成目标域名或者IP。

4847

被折叠的 条评论
为什么被折叠?



