maven profile 控制切换配置文件
一. profile:
先了解一下maven中的 profile:
profile 可以让我们定义一系列的配置信息,然后指定其激活条件。这样我们就可以定义多个 profile,然后每个 profile 对应不同的激活条件和配置信息,从而达到不同环境使用不同配置信息的效果
二. 项目中手动切换配置文件
一般的项目中不同的yml配置文件代表不同的应用场景:
我们通过application.properties中的指向来正确的配置文件:
-
开发环境中指向application-dev.properties
spring.profiles.active=dev
-
线上环境指向pro
spring.profiles.active=pro
这样手动更改配置文件来切换配置太麻烦了!肯定更简单的操作来完成
三. 使用profile
- pom中引入profile,两个profile的id分别对应dev和pro,reload一下,maven正确识别profile
<profiles>
<profile>
<!-- 本地开发环境 -->
<id>dev</id>
<properties>
<profile.active>dev</profile.active>
</properties>
<activation>
//默认的选择
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<!-- 发布环境 -->
<id>pro</id>
<properties>
<profile.active>pro</profile.active>
</properties>
</profile>
</profiles>
-
application.properties 更新为:
spring.profiles.active=@profile.active@
-
使用
mvn -P
来切换配置:执行mvn clean package -P pro
命令时, @profiles.active@ 会替换成 pro
四. 更多场景的应用
同理我们可以在profile节点下设置更多配置信息:jdk版本,仓库等
<profile>
<id>jdk-11</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>11</jdk>
</activation>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<maven.compiler.compilerVersion>11</maven.compiler.compilerVersion>
</properties>
<repositories>
//配置仓库
<repository>
<id>public</id>
<name>aliyun nexus</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
</profile>