- 4个配置文件
- src/main/resource/application.properties
- src/main/resource/application-dev.properties
- src/main/resource/application-release.properties
- src/main/resource/application-test.properties
- 配置pom.xml
<profiles>
<profile>
<!-- 本地开发环境 -->
<id>dev</id>
<properties>
<!--dev来源于resources下的配置文件名称-->
<!--profiles.active为自定义后面两处要用-->
<profiles.active>dev</profiles.active>
</properties>
<activation>
<!-- 设置默认激活这个配置 -->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<!-- 发布环境 -->
<id>release</id>
<properties>
<profiles.active>release</profiles.active>
</properties>
</profile>
<profile>
<!-- 测试环境 -->
<id>beta</id>
<properties>
<profiles.active>beta</profiles.active>
</properties>
</profile>
</profiles>
- 配置打包时加载文件
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<!--适用于resource无法打包-->
<!--<includes>
<include>**/*</include>
</includes>-->
<!-- 排除全部配置文件,为了非当前环境的配置文件不出现在当前包中-->
<excludes>
<exclude>application*.properties</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
<!--这里不开启配置文件无法解析-->
<filtering>true</filtering>
<includes>
<include>application.properties</include>
<!--引用当前环境的配置文件-->
<include>application-${profiles.active}.properties</include>
</includes>
</resource>
</resources>
</build>
- 配置application.properties
#这里网上有说用#,用${}都是不行的
spring.profiles.active=@profiles.active@
- 使用
idea会在maven窗口显示配置项,勾选使用再执行maven命令就行
验证的话直接看target中配置文件是否变成了引用的属性 - 引用文章说idea直接启动解析不了配置文件,这点我是没有遇到,不需要增加配置