我们在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文件并且工作正常)。
答案 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})。
这样做可以让开发人员轻松完成本地构建。他们只需要在本地构建环境中设置环境变量。