我们的Nexus存储库配置为使用存储库目标权限: user1可以部署到com.company.group1, user2可以部署到com.company.group2等。
我们可以在.m2 / settings.xml文件中为同一个Maven存储库提供user1和user2凭据吗?如果其中一个人的许可被拒绝,Maven会尝试这两个吗?
答案 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调用指定所需的文件。