当前位置:  开发笔记 > 编程语言 > 正文

使用Maven外部化SCM凭据

如何解决《使用Maven外部化SCM凭据》经验,为你挑选了3个好方法。

是否有一种外部化我的SCM凭证的方法,因此它们不存储在项目的POM中?问题是如果它们包含在项目的POM中,那么在部署项目时,所有人都可以看到它们.



1> Philippe Bea..:

对于某些SCM提供商,您可以在以下部分中指定您的凭据settings.xml.作为使用存储库的域名.这对我来说很有用.SubVersion也有效.

例如,鉴于我的pom.xml包含:


  scm:hg:http://jukito.googlecode.com/hg/
  scm:hg:https://jukito.googlecode.com/hg/
  http://code.google.com/p/jukito/source/browse/

然后我可以这样指定我的凭据settings.xml:


  jukito.googlecode.com
  philippe.beaudoin
  1234567890ABC


@JörnHorstmannmaven参考书的附录A.2.2中对此进行了描述,请参阅http://www.sonatype.com/books/mvnref-book/reference/appendix-settings-sect-details.html#appendix-settings-教派的服务器
请注意,这也适用于使用ssh的git。就我而言,对于<developerConnection>我使用:`scm:git:ssh://git@bitbucket.org/ {account} / {project}`,然后在我的settings.xml中使用`<id> bitbucket.org </ id> <privateKey> /c/Users/neil.hunt/.ssh/id_rsa </ privateKey>`

2> 01es..:

我意识到这个问题已经过时,答案已被接受,但为了完整起见,我想提供以下备选方案,在某些情况下可能更为可取.

动机

有时会发生同一服务器用于多种目的,这需要不同的用户凭据.例如,它用于托管Nexus驱动的Maven存储库以及为同一用户具有不同凭据的SVN服务器.在这样的情况下,将需要数项与同idusername,但不同的password.然而,这是不可行的.

行家释放插件支持的标志usernamepassword可作为的一部分来提供release:preparerelease:perform命令.值usernamepassword应该与相应的SVN凭证匹配.

mvn release:prepare -Dusername=[username] -Dpassword=[password] 


最好在命令上传递这些信息,因为任何人都可以查看runnignprocesses以获取您的凭据.

3> Rich Seller..:

这可以为许多SCM提供者完成,我假设Subversion是基于您的标记的实现.

您可以在$ user.home/.scm/svn-settings.xml(或[maven home] /conf/.scm/svn-settings.xml)中定义Subversion设置,但这意味着它们仍然可供用户看到系统)

在该文件中,您可以设置Subversion服务器的用户名和密码.文件内容应如下所示:


  [svn user]
  [svn password]

您可以在该配置文件中定义一些其他属性.有关更多详细信息,请参阅Subversion SCM页面的"提供程序配置"部分.

其他SCM提供程序也有类似的方法,例如在CVS中,设置存储在cvs-settings.xml中的相同位置(.scm文件夹),有关详细信息,请参阅CVS SCM页面.


嗨Rich,你的建议不起作用(至少对我而言).此外,在您的链接上没有关于用户名和密码...所以,必须有另一个解决方案......
推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有