从詹金斯将凭据传递给Maven

时间:2019-08-08 20:43:12

标签: maven jenkins

我有一个运行Jenkins的节点,该节点使用maven构建代码。 Jenkins作业是声明性管道脚本。 Maven需要从需要证书才能访问的私有存储库下载依赖项。凭据存储在Jenkins凭据管理器中。

如何将这些凭据传递给Maven,以便Maven可以使用这些凭据从私有存储库正确下载依赖项。

3 个答案:

答案 0 :(得分:1)

通过将Jenkins凭据注入您的环境,然后将这些凭据传递给Maven,您可以使用Jenkins凭据访问私有存储库。

步骤:

  1. 如果还没有创建一对新的Jenkins凭证(我正在使用id“ test-creds”)
  2. 使用有关此问题的说明:How to pass Maven settings via environmental vars。在需要凭据的maven命令周围,使用“ withCredentials”块。然后将这些凭据传递给Maven。
    withCredentials([usernamePassword(credentialsId: 'test-creds', passwordVariable: 'PASSWORD_VAR', usernameVariable: 'USERNAME_VAR')])
    {
        sh 'mvn clean install -Dserver.username=${USERNAME_VAR} -Dserver.password=${PASSWORD_VAR}'
    }
  1. 在您的 settings.xml 文件中,引用以下变量:
    <servers>
        <server>
            <id>yourRepoName</id>
            <username>${server.username}</username>
            <password>${server.password}</password>
        </server>
    </servers>
  1. 如果需要指定settings.xml文件,则可以在maven命令中使用-s-gs标志。

答案 1 :(得分:1)

有一个更好的方法,可以使用Config File ProviderCredentilals Jenkins插件解决此任务。只需创建maven settings.xml配置文件并将服务器凭据注入其中即可。

步骤:

  1. 如果尚未创建一对新的Jenkins凭证(选择种类“用户名和密码”)。
  2. 使用配置文件提供程序插件创建新的maven settings.xml文件。只需将现有的maven.xml文件复制到“内容”字段中,然后删除部分。在詹金斯中,您不需要它。
  3. 在“服务器凭据”块中,单击“添加”按钮。填写服务器名称并为其选择适当的凭据。 部分将在运行时自动添加到您的settings.xml文件中。您可以添加多个服务器。
  4. 在管道中使用maven文件:
stage('Publish to nexus')
    withMaven(mavenSettingsConfig: 'the name of your configuration file in jenkins'){
        sh mvn clean deploy
    }

答案 2 :(得分:0)

from Config File Provider page这仅适用于自由式或 maven 作业。不适用于多分支管道。请参阅配置文件提供程序插件文档 here