因为项目用到了多个环境,springboot项目在打包的时候要根据环境进行初始化相关设置,因此需要在pom文件中配置多环境变量
pom配置文件如下:
<profiles>
<profile>
<id>dev</id>
<properties>
<profileActive>dev</profileActive>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>test</id>
<properties>
<profileActive>test</profileActive>
</properties>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
</profile>
<profile>
<id>online</id>
<properties>
<profileActive>online</profileActive>
</properties>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
</profile>
</profiles>
profile文件指定打包启动加载的哪个配置文件,可根据环境的多少分别进行配置
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>application-${profileActive}.yml</include>
<include>application.yml</include>
<include>**/*</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
resource配置指定系统配置文件加载的路径
其中的include表示加载的哪些文件到容器中,如果没有指定所有的配置加载到容器中,在配置文件中的classpath:/**方式引用的文件不会加载到容器中,导致启动失败
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<delimiters>
<delimiter>@</delimiter>
</delimiters>
<useDefaultDelimiters>false</useDefaultDelimiters>
</configuration>
</plugin>
plugin指定maven打包时需要取得参数,根据参数来设置打包的环境的配置文件
另外需要建一个application.yml或者application.propertites文件指定启动文件环境
application.yml方式配置如下:
spring:
profiles:
active: @profileActive@
遇到了问题记录一下,希望可以学习更进一步,欢迎指正