创建一个Spring Boot 项目
配置文件有:application.properties
、application-test.properties
、application-dev.properties
、application-prod.properties
配置 application.properties
server.port=8003
spring.profiles.active=@profileActive@
配置 pom.xml
在 dependencies 的下方配置 profiles 标签
<dependencies>
<dependency>
...
</dependency>
</dependencies>
<profiles>
<!--测试环境-->
<profile>
<id>test</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<profileActive>test</profileActive>
</properties>
</profile>
<!--开发环境-->
<profile>
<id>dev</id>
<activation>
<!--默认 使用 开发环境-->
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<profileActive>dev</profileActive>
</properties>
</profile>
<!--生产环境-->
<profile>
<id>prod</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<profileActive>prod</profileActive>
</properties>
</profile>
</profiles>
配置文件中的 profileActive 是和 标签 profiles > profile > properties 中的 profileActive 是一致的
只要相同,才能获取到值。所以 profileActive 换成其他 也是可以的。
maven打包命令:
mvn clean package -P prod -DskipTests
这里 prod
就会填入 配置文件
打包后再打开 application.properties
server.port=8003
spring.profiles.active=prod
就是这种效果
我们是用jar包运行的时候 还可以运行指定的环境
命令如下:
java -jar xxx.jar --spring.profiles.active=prod
或者
java -jar -Dspring.profiles.active=test xxx.jar
可能会导致无法启动,是因为pom.xml无法识别 ${xxx},需要开启
filtering=true
开启过滤,用指定参数替换 ${xxx}
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<!--包含哪些文件-->
<includes>
<include>application.properties</include>
<include>application-${profileActive}.properties</include>
</includes>
<!--不包含哪些文件-->
</resource>
</resources>
</build>