目标:打包时有多套环境,不同的依赖,不同的配置文件,我希望打包时采用对应的依赖和配置文件
1.pom
在插件中定义多套profile
<profiles>
<profile>
<id>dev</id>
<!-- <activation>
<activeByDefault>true</activeByDefault>
</activation> -->
<properties>
<!-- <logback.loglevel>INFO</logback.loglevel> -->
<spring.profiles.active>dev</spring.profiles.active>
</properties>
<dependencies>
</dependencies>
<build>
<plugins>
</plugins>
</build>
</profile>
<profile>
<id>prod</id>
<properties>
<!-- <logback.loglevel>INFO</logback.loglevel> -->
<spring.profiles.active>prod</spring.profiles.active>
</properties>
<dependencies>
</dependencies>
<build>
<plugins>
</plugins>
</build>
</profile>
</profiles>
加一个插件,作用是在application.yml中获取pom文件中的变量
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<encoding>utf-8</encoding>
<useDefaultDelimiters>true</useDefaultDelimiters>
</configuration>
</plugin>
2.application.yml
spring:
profiles:
active: ${spring.profiles.active}
使用clean package -P prod 命令,maven会找pom中prod的profiles,采用这套配置,并读取我自定义的变量spring.profiles.active,然后将此变量放入application.yml的spring.profiles.active,就顺利的激活了对应的application-prod.yml.这样打出的包,就不需要在命令行启动时手动指定哪套配置文件了