该项目为Springboot项目,没有使用Springcloud框架,配置文件有application.yml。
前言
新项目要接入jenkins,后续使用jenkins自动化部署,这时打包需要根据不同环境加载不同配置。
一、pom文件
下面是相关配置,重点是标签"env",配置文件中写成动态参数即可。
<profiles>
<profile>
<id>aliyunDev</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<env>aliyunDev</env>
</properties>
</profile>
<profile>
<id>aliyunTest</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<env>aliyunTest</env>
</properties>
</profile>
<profile>
<id>aliyunAccept</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<env>aliyunAccept</env>
</properties>
</profile>
<profile>
<id>aliyunProd</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<env>aliyunProd</env>
</properties>
</profile>
</profiles>
application.yml
spring:
profiles:
active: @env@
二、打包
1.maven命令
代码如下(示例):
-PaliyunAccept 是pom中profile的id。可以是aliyunDev、aliyunTest、aliyunAccept、aliyunProd。
<!-- 验收环境 -->
mvn clean package -Dmaven.test.skip=true -PaliyunAccept -Dfile.encoding=UTF-8
<!-- prod环境 -->
mvn clean package -Dmaven.test.skip=true -PaliyunProd -Dfile.encoding=UTF-8
2.日志文件中乱码解决
打包命令后面添加参数:
-Dfile.encoding=UTF-8
总结
不同框架处理配置环境问题,稍微有点差别,但都大同小异,理解了一种之后,另外的也就问题不大。