我可以在maven settings.xml文件中使用多个用户名吗?

时间:2012-05-01 17:41:07

标签: maven nexus

我们的Nexus存储库配置为使用存储库目标权限: user1可以部署到com.company.group1, user2可以部署到com.company.group2等。

我们可以在.m2 / settings.xml文件中为同一个Maven存储库提供user1和user2凭据吗?如果其中一个人的许可被拒绝,Maven会尝试这两个吗?

3 个答案:

答案 0 :(得分:2)

我在distributionManagement中使用属性,比如 -

  <distributionManagement>
    <repository>
      <id>releases</id>
      <url>${url.releases}</url>
    </repository>
    <snapshotRepository>
      <id>snapshots</id>
      <url>${url.snapshots}</url>
    </snapshotRepository>
    <site>
      <id>site</id>
      <url>${url.site}</url>
    </site>
  </distributionManagement>

我的settings.xml具有为目标存储库定义这些属性的配置文件。 <id>与settings.xml中的<server>匹配,因此您可以对不同的用户名/密码/存储库组合使用不同的<id>。在settings.xml中,将<activeProfiles>设置为部署所需的默认配置文件。当您需要切换到其他配置文件时,可以在命令行中执行此操作。

答案 1 :(得分:1)

据我所知,您无法在同一settings.xml文件中混合凭据;这似乎是一个很大的安全漏洞。每个用户都应该在您的构建机器上拥有自己的登录名;那么每个人都有自己的.m2/settings.xml.m2/settings-security.xml个文件(你需要后者到encrypt passwords)。每个用户都会添加<server>个条目,其ID与<distributionManagement>部分中与所部署项目相匹配的ID。

答案 2 :(得分:1)

你可以,例如为每个用户使用不同的配置文件,并将用户名和密码设置为这些配置文件中的属性然后,您可以激活配置文件,具体取决于您当前要使用的用户。您也可以将其中一个配置文件设置为默认处于活动状态,这样您就不必在调用中始终使用配置文件名称。

另一种方法是为用户提供单独的settings.xml文件,并使用-s标志为maven调用指定所需的文件。