说明
本文只是一个总结
参考文章:
Maven 插件 - 打包时多环境配置文件设置
Maven 多环境打包
maven 多环境打包发布的两种方式
开发中碰到的问题1
现在采用 spring boot
开发时,spring boot
开发的配置文件结构目录,如下图所示:
这样有个好处是配置文件可以分开,公用的配置项可以放在 application.properties
文件里面,再通过 spring.profiles.active
配置项来激活 各个环境的配置项,在使用 spring cloud config
之后,可能还会多一个 bootstrap.properties
, 这个文件无法支持多环境配置 , 所以每次在使用 maven
构建打包时,总会手动去改大量配置,这样打包时,可能忘记修改某个配置而导致最后发布的包出现问题。所以我们需要用到使用 maven
进行多环境打包。
Maven 多环境打包
1. 修改 pom.xml
在 pom.xml
文件中 添加 <profiles></profiles>
标签,然后 在此标签中加入<profile></profile>
标签进行多环境配置。
<profiles>
<!-- 测试环境 -->
<profile>
<id>test</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<spring.profiles.active>test</spring.profiles.active>
</properties>
</profile>
<!-- 开发环境 -->
<profile>
<id>dev</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<spring.profiles.active>dev</spring.profiles.active>
</properties>
</profile>
<!-- 生产环境 -->
<profile>
<id>pro</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<spring.profiles.active>pro</spring.profiles.active>
</properties>
</profile>
</profiles>
其中 <activeByDefault></activeByDefault>
标签为true 时表示默认配置,通过 eclipse
执行 run as
的 maven install
时,默认使用 activeByDefault
为 true
的配置。
同时需要在 pom.xml
文件中的 <build></build>
标签中加入:
<build>
<resources>
<resource><!-- 扫描替换 -->
<directory>${project.basedir}/src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
用来指定打包时,去替换指定文件下的配置,这样 pom.xml
配置完成。
修改 properties 文件
修改 properties
文件就特别简单了,将在 pom.xml
中 profile
的 properties
直接替换就行了。
spring.profiles.active=@spring.profiles.active@
打包
此时如果执行 eclipse
中的 maven install
则会打包成默认的配置项。
但是通过 运行 maven build...
在 Goals
中执行 clean install -P pro
则可打包其他环境。