上午好,今天真是美好的一天。
登录注册
2023-02-13 04:09:13

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

解决 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

评论与留言

以下内容均由网友提交发布,版权与真实性无法查证,请自行辨别。
本站有缓存策略,时间约2小时后能看到您的评论。本站使用自动审核机制,如果您的内容包含广告/谩骂/恐怖/暴力/涉政等不和谐内容将无法展示!
微信订阅号
扫码关注「任霏博客」微信订阅号
反馈与讨论
感谢您的关注与反馈
如果您发现了BUG、安全漏洞、或者希望讨论技术内容,请点击下方链接对我进行反馈。
feedback
最新留言