springboot多环境部署的时候profile不生效的问题解决
- 问题
在pom.xml配置profile之后
<profiles>
<profile>
<!-- 开发环境 -->
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<package.environment>dev</package.environment>
</properties>
</profile>
<profile>
<!-- 正式环境 -->
<id>prod-8093</id>
<properties>
<package.environment>prod</package.environment>
</properties>
</profile>
</profiles>
同在也在打包的时候处理yml文件的application.yml打包进去
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
<configuration>
<mainClass>com.eams.eamsruoyi.EamsRuoyiApplication</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<!--资源包括:application.yml 和 application-${profile.enviroment}.yml
-package.environment是pom文件中properties中自定义的属性值-->
<includes>
<!-- <include>**/*.yml</include>-->
<include>application.yml</include>
<include>application-${package.environment}.yml</include>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
- mvn clean install -Pprod 之后 application.yml 和application-prod.yml也被打包进去,但是在执行的时候仍然会提示No active profile set, falling back to 1 default profile: “default”,
- 此时需要激活profile,在application.yml中增加
spring:
profiles:
active: @package.environment@ -package.environment是pom文件中properties中自定义的属性值