站起来活动活动吧~

编程开发

解决 SpringCloud 中 bootstrap.yml 不识别 @activatedProperties@ 参数

2023年02月13日 12:09:13 · 本文共 757 字阅读时间约 2分钟 · 1,615 次浏览
解决 SpringCloud 中 bootstrap.yml 不识别 @activatedProperties@ 参数

在 Spring 项目中,我们经常使用 maven 变量来切换不用的环境,例如本文中的 @activatedProperties@ 参数,在 maven 打包时传入不用的参数,使得配置文件可以在多种运行环境中进行切换。

今天我遇到的问题是在 SpringCloud 中的 bootstrap.yml 文件使用了 @activatedProperties@ 参数,但是无论我怎么重新打包,这个 @activatedProperties@ 参数都没有被替换,直接原样的输出到打包文件中了,造成程序无法运行。

使用 Maven Filtering

Maven filtering 是 Maven 构建过程中的一个功能,它可以在构建过程中动态地替换文件中的属性。

例如,您可以在项目的配置文件中定义一个属性,然后在文件中使用该属性。在构建过程中,Maven 将替换该属性为它的实际值。

所以我们需要修改 pom.xml 中的 build 节点,增加 filtering 配置,配置如下:

<build>
<finalName>${project.artifactId}</finalName>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.yml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

这样在构建过程中,Maven 将替换文件中的属性为其实际值。

如果你还有更多的疑问,建议阅读官方文档:https://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html

商业用途请联系作者获得授权。
版权声明:本文为博主「任霏」原创文章,遵循 CC BY-NC-SA 4.0 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://www.renfei.net/posts/1624983265179869232
评论与留言

以下内容均由网友提交发布,版权与真实性无法查证,请自行辨别。

微信搜一搜:任霏博客