在使用GitHub或Bitbucket这样的网站时,在这些网站上拥有多个帐户并不罕见。
我通常会将我的凭据放入系统范围settings.xml
,例如
<settings>
<servers>
<server>
<id>github.com</id>
<username>user1</username>
<password>mysecret</password>
</server>
这将适用于标准Maven&lt; scm&gt; POM中的部分。 <developerConnection>
中的域名将与来自settings.xml文件中相应服务器的<id>
匹配。宾果!
但是,如果我在同一个域中拥有多个帐户,该怎么办?
(并且仍然希望凭据位于settings.xml
)。我无法理解Maven将如何进行匹配。 <scm>
部分中的我的网址包含&#34; username @ host&#34;符号所以肯定Maven会有足够的信息在settings.xml
中进行适当的匹配。
我已经尝试了以下格式,在我看来,Maven将支持这种格式:
<settings>
<servers>
<server>
<id>user1@github.com</id>
<username>user1</username>
<password>mysecret</password>
</server>
<server>
<id>user2@github.com</id>
<username>user2</username>
<password>mysecret</password>
</server>
<!-- default if no username in scm section -->
<server>
<id>github.com</id>
<username>user1</username>
<password>mysecret</password>
</server>
但那不起作用。
关于如何做到这一点的任何想法?
当然,我不能成为世界上第一个在同一个VCS主机上拥有多个帐户......并且使用Maven的人。
我已审核了Maven SCM Plugin的代码。我上面写的内容完全没有支持。今天发生的事情是将<id>
标记与SCM URL中给出的主机名部分进行匹配。比较严格,即使不区分大小写。如果在网址中提供了端口号,那么也包含该端口号,并且必须与<id>
标记匹配,例如myhost:8080
。
我已就此问题创建了Enhancement Request (SCM-826)。
答案 0 :(得分:0)
我建议您通过SSH进行身份验证。如果user1和user 2具有相同的公钥,则可以在没有settings.xml
文件