如何在Jenkins的maven的settings.xml中管理密码

时间:2017-11-07 12:42:57

标签: maven jenkins

我们在Jenkins中使用settings.xml作为“托管文件”(Global Maven settings.xml)。

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>
    <server>
        <id>xxxreleases</id>
        <username>user</username>
        <password>plaintextpasswd</password> 
    </server>
    <server>
        <id>xxxsnapshots</id>
        <username>user</username>
        <password>plaintextpasswd</password>
    </server>
    ..

它包含纯文本服务器和配置文件的密码。如何在不修改每个Jenkins作业的情况下在此配置中加密或隐藏此密码(有许多作业正在使用此.xml文件并且工作正常)。

1 个答案:

答案 0 :(得分:3)

正确的方法是将ID和密码存储在Jenkins Credentials商店中。然后,您可以使用environment{}块在管道作业中将ID和密码注入环境中,如:

environment{
    USER_CREDS = credentials('credential_id')
}

这将创建3个环境变量USER_CREDS(包含用户:密码),USER_CREDS_USR和USER_CREDS_PSW。

使用自由式作业,使用 Credential Binding Plugin 将ID和密码输入到环境中。然后你可以使用Maven的机制来访问环境变量(我相信它就像$ {env.USER_CREDS_USR})。

这样做可以让开发人员轻松完成本地构建。他们只需要在本地构建环境中设置环境变量。