【发布时间】:2016-11-25 12:53:03
【问题描述】:
我们使用 Maven-release-plugin 来执行发布,并调用 SVN 来提交对 pom 的更改、创建分支等。 目前,为了实现这个过程,我们从命令行使用 SVN 客户端登录,并将密码缓存在用户的 .subversion 文件夹中。 有没有办法例如不同的 Maven 插件、不同的 SVN 客户端等,我们只需要在 Jenkins 中拥有凭据即可。
【问题讨论】:
我们使用 Maven-release-plugin 来执行发布,并调用 SVN 来提交对 pom 的更改、创建分支等。 目前,为了实现这个过程,我们从命令行使用 SVN 客户端登录,并将密码缓存在用户的 .subversion 文件夹中。 有没有办法例如不同的 Maven 插件、不同的 SVN 客户端等,我们只需要在 Jenkins 中拥有凭据即可。
【问题讨论】:
在 Jenkins 中,您可以将 Crendentials Binding Plugin 用于此类目的。
在管道中,您可以通过以下方式完成:
withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: 'amazon',
usernameVariable: 'USERNAME',
passwordVariable: 'PASSWORD']]) {
//available as an env variable, but will be masked if you try to print it out any which way
sh 'mvn -Dusername=${USERNAME}, -Dpassword=${PASSWORD} release:prepare release:perform'
}
您也可以在release:perform期间添加补充参数通过:
withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: 'amazon',
usernameVariable: 'USERNAME',
passwordVariable: 'PASSWORD']]) {
sh 'mvn -Darguments="-Dusername=${USERNAME}, -Dpassword=${PASSWORD}" release:perform'
}
【讨论】:
通过在构建环境中使用凭据绑定插件解决了勾选“使用机密文本或文件。然后选择用户名和密码(分隔)并选择凭据。 在“用户名变量”中输入用户名 在“密码变量”中输入密码 该插件将自动注入凭据中的值并将其隐藏在日志中。
感谢所有花时间阅读和回复本文的人。
【讨论】: