将凭据从 Jenkins 传递给 maven

CDO*_*CDO 5 maven jenkins

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

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

CDO*_*CDO 6

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

脚步:

  1. 如果您还没有创建一对新的 Jenkins 凭据(我正在使用 ID“test-creds”)
  2. 使用此问题的说明:How to pass Maven settings via environment 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}'
    }
Run Code Online (Sandbox Code Playgroud)
  1. settings.xml文件中,引用这些变量:
    <servers>
        <server>
            <id>ServerID</id>
            <username>${server.username}</username>
            <password>${server.password}</password>
        </server>
    </servers>
Run Code Online (Sandbox Code Playgroud)
  1. 如果需要指定 settings.xml 文件,可以在 maven 命令中使用-sor-gs标志。