是否有一种外部化我的SCM凭证的方法,因此它们不存储在项目的POM中?问题是如果它们包含在项目的POM中,那么在部署项目时,所有人都可以看到它们.
对于某些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
我意识到这个问题已经过时,答案已被接受,但为了完整起见,我想提供以下备选方案,在某些情况下可能更为可取.
有时会发生同一服务器用于多种目的,这需要不同的用户凭据.例如,它用于托管Nexus驱动的Maven存储库以及为同一用户具有不同凭据的SVN服务器.在这样的情况下,将需要数
项与同id
和username
,但不同的password
.然而,这是不可行的.
行家释放插件支持的标志username
和password
可作为的一部分来提供release:prepare
和release:perform
命令.值username
和password
应该与相应的SVN凭证匹配.
mvn release:prepare -Dusername=[username] -Dpassword=[password]
这可以为许多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页面.