7

我正在运行 maven 发布插件(org.apache.maven.plugins:maven-release-plugin:2.3.2)并注意到当通过传递时,scm 的密码以明文形式保存在 release.properties 文件中命令行。我想知道是否有办法关闭它。

我正在使用 Hudson 来自动化发布过程,并且通过 Hudson 将 svn 用户名和密码传递到命令行。原因是做发布准备的人可以改变,我有多个 hudson 工作共享一个 settings.xml 来发布不同的项目。

我传入的参数如下: -Dtag=${svn.label} -DreleaseVersion=${maven.releaseVersion} -DdevelopmentVersion=${maven.developmentVersion} -Dusername=${svn.username} -Dpassword=${ svn.password} -DscmCommentPrefix='[maven-release-plugin] ${env.BUILD_URL}'

release.properties 文件是在 release:prepare 期间创建的,但我认为没有必要,因为我正在通过命令行传递所有信息。创建此 release.properties 文件时,它包含纯文本密码。这是有问题的,因为可以使用 hudson 浏览工作区,因此任何有权访问 hudson 的人都可以通过浏览器打开文件来查看密码。

有没有办法不创建 release.properties 文件,或者不将密码保存在文件中?我意识到可以将加密密码保存在 settings.xml 文件中,但该文件在多个作业之间共享,并且运行作业的人员无法编辑。

4

2 回答 2

0

就在几天前,有人要求进行这种改进:https ://jira.codehaus.org/browse/MRELEASE-846

于 2013-09-07T15:59:50.367 回答
0

我们避免了让 svn-client 为我们缓存密码的问题。

为此,我们有一个特殊帐户,具有足够的颠覆权限。

在我们的构建服务器上,密码由 svn-client 以纯文本形式存储在运行 hudson 的用户的帐户中。对我们来说没问题,因为只有 hudson 管理员才能访问此帐户。

但是你也可以配置 svn-client 来存储加密的密码。配置取决于您的操作系统。

svn-client 配置存储在 .subversion (linux) 或 "ApplicationData/Subversion" (windows) 中。

这里这里这里

于 2013-09-04T17:09:26.123 回答