版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
由于开发、测试和生产环境配置都不一样,如果手动替换application.properties文件容易出错,希望各环境的配置文件独立开,环境与配置文件自动匹配,就需要用到maven的profiles了。
1. 分别创建多环境application.properties
2. pom.xml定义多环境
1)在dependencies后面加入profiles
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<profiles.activation>dev</profiles.activation>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<profiles.activation>test</profiles.activation>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<profiles.activation>prod</profiles.activation>
</properties>
</profile>
</profiles>
2)在build中加入,不包含config目录,加入config下当前环境的application.properties文件,可按需扩展;${profiles.active}指profiles中当前激活的
<build>
<finalName>${name}-${profiles.activation}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>config/</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources/config/${profiles.activation}</directory>
<filtering>true</filtering>
<includes>
<include>application.properties</include>
</includes>
</resource>
</resources>
</build>
3. 分多环境创建打包启动程序build-xxx.bat
build-dev.bat:
mvn clean package
build-test.bat:
mvn clean package -P test
build-release.bat:
mvn clean package -P prod
4. 启动build-xxx.bat即可对相应环境打包
5. 开发环境中,在IDE中启动项目,默认读取confi/dev中的配置文件。
如本例中,默认启动端口为8081,如果发现不正确,可以检查一下target/classes目录下是否包含application.properties且端口是否正确,如果不正确可以重新build工程(遇到过IDEA将配置文件中的端口改成了8080的情况)