一、使用maven插件动态切换配置时出现报错
二、配置文件及pom
2.1 配置文件结构
2.2 application.yml
spring:
# 根据环境读取配置文件(手动)
# profiles:
# active: dev
# 根据环境读取配置文件(通过勾选maven插件)
profiles:
active: @runtime-profile@
其他配置文件为正常的配置,标明开发,测试及生产环境
2.3 pom
下面只贴出对应环境配置,不涉及dependence,涉及真实ip位置全部改为本地ip
<profiles>
<!-- 配置需要切换的环境 -->
<profile>
<id>dev</id>
<!-- properties下的每个子标签我们可以理解为一个配置 -->
<properties>
<!-- 标签名为自定义,和我们平时写properties一样,同样我们也可以定义一个或多个(key, value)配置-->
<runtime-profile>dev</runtime-profile>
<!-- 如果你需要配置一些变量,你可以在这里设置一个k-v数据,在具体的环境变量中读取这个数据或者你也可以在具体的配置文件中直接设置(如application-dev.yml) -->
<config-addr>127.0.0.1:8081</config-addr>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<runtime-profile>prod</runtime-profile>
<config-addr>127.0.0.1:8083</config-addr>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<runtime-profile>test</runtime-profile>
<config-addr>127.0.0.1:8082</config-addr>
</properties>
</profile>
</profiles>
2.4 报错分析
以上配置选择dev环境进行启动时报错
2.5 解决方案
添加如下pom文件
<build>
<!-不设置resource 会导致application.yaml中的@@找不到pom文件中的配置-->
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
添加之后重新启动项目,如果还是出现该问题,可能是预编译的classes问题,清除maven缓存,先clean再重新install