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 (将#修改为@)