如何解决Jenkins Maven项目+资源插件过滤替换了系统环境中的值
在使用Jenkins Maven样式项目构建spring boot maven项目时,我遇到了一个问题。我们已经使用maven资源插件从特定于环境的属性文件中过滤application.properties。我们有一个密码属性,我们希望在特定的系统环境配置文件中使用该密码属性,并且不应将其替换为使用构建服务器的环境配置文件的Jenkins构建。
下面是摘要
$ {project.basedir} /src/main/resources/application.properties
project.db.password=@DB_PASSWORD@
$ {project.basedir} /env/dev.properties
DB_PASSWORD=${DATABASE_PASSWORD}
$ {project.basedir} /env/prod.properties
DB_PASSWORD=${DATABASE_PASSWORD}
pom.xml
<resources>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
</plugin
<filters>
<filter>${project.basedir}/env/${profile-id}.properties </filter>
</filters>
如果我通过命令或Jenkins自由式项目直接在 Jenkins构建服务器上运行一切正常,并使用Invoke top-level maven命令作为构建步骤(即:它不替换为$ {*})。但是,当我使用Jenkins Maven风格的项目进行构建时,它会将$ {DATABASE_PASSWROD}替换为构建环境配置文件中的值。
对此有任何线索吗?
P.S ::我没有附加Jenkins屏幕截图,因为我没有其他东西可以为freestyle和maven风格项目安装干净的软件包了。
Jenkins version: 2.107.3
Maven version: 3.5.3
Spring boot: 2.1.0-RELEASE
请告知我是否需要进一步的信息。如果您遇到并解决了此问题,请提供帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。