是否有外部化我的SCM凭据,以便它们不存储在项目的POM的方法? 是如果他们包含在项目的POM的问题,他们将是可见的,当所有部署项目。
Answer 1:
这可以为众多的SCM供应商来完成,我认为颠覆基于您的代码中实现。
您可以在$的user.home定义你的Subversion设置/ .scm / SVN-settings.xml中(或[行家家居】/conf/.scm/svn-settings.xml,虽然这意味着他们仍然是可见的用户系统)
在该文件中,你可以为Subversion服务器设置用户名和密码。 该文件内容应该是这样的:
<svn-settings>
<user>[svn user]</user>
<password>[svn password]</password>
</svn-settings>
您可以定义在配置文件中的一些其他属性。 欲了解更多详情,请参阅的“提供程序配置”部分颠覆SCM页 。
其他的SCM供应商也有类似的做法,例如在CVS的设置存储在CVS-settings.xml中在相同的位置(.scm文件夹),看到CVS SCM页面了解详情。
Answer 2:
对于一些SCM供应商可以在指定的凭证<servers>
的部分settings.xml
。 作为<id>
使用存储库的域名。 这对我的作品有水银。 颠覆的作品了。
例如,考虑到我pom.xml
包含:
<scm>
<connection>scm:hg:http://jukito.googlecode.com/hg/</connection>
<developerConnection>scm:hg:https://jukito.googlecode.com/hg/</developerConnection>
<url>http://code.google.com/p/jukito/source/browse/</url>
</scm>
然后,我可以指定我的凭据settings.xml
这样:
<server>
<id>jukito.googlecode.com</id>
<username>philippe.beaudoin</username>
<password>1234567890ABC</password>
</server>
Answer 3:
我意识到这个问题是老问题的答案被接受,但为了完整起见,谨提供以下选择,这可能会在某些情况下是首选。
动机
它因此有时会发生在同一台服务器被用于多种用途,这就需要不同的用户凭据。 例如,它是用于承载的Nexus驱动Maven仓库以及具有对于同一用户的不同凭据的SVN服务器。 在这样的情况下,将需要数<server>
用相同的条目id
和username
,但不同的password
。 然而,这是不可行的。
解
行家释放插件支持的标志username
和password
,可以提供作为部分release:prepare
和release:perform
命令。 对于价值username
和password
应符合相应的SVN凭据。
mvn release:prepare -Dusername=[username] -Dpassword=[password]
Answer 4:
我已经成功地得到这个通过以上即增加一个新的服务器配置,以我的settings.xml,并给予域名作为ID提供的解决方案的工作。
<server>
<id>domain.name:port</id>
<username>[username]</username>
<password>[password]</password>
</server>
除了前面的答案,如果你在你的URL指定端口,这也需要包括在server.id。 我发现了另一个怪癖是,你需要加上引号的密码,如果它包含可能与命令行调用任何干扰字符。
你不能使用你的$的user.home / .scm / SVN-settings.xm以下,因为它是无效的! 不存在这样的元素作为<user>
和<password>
下<svn-settings>
(如指定此处 )
<svn-settings>
<user>[svn user]</user>
<password>[svn password]</password>
</svn-settings>