我们的 Nexus 存储库配置为使用存储库目标权限:user1 可以部署到 com.company.group1,user2 可以部署到 com.company.group2,等等。
我们可以在 .m2/settings.xml 文件中同时拥有同一个 Maven 存储库的 user1 和 user2 凭据吗?如果其中之一的许可被拒绝,Maven 会尝试它们吗?
我在 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 具有为目标存储库定义这些属性的配置文件。与settings.xml 中的匹配,因此您可以对<id>
不同的用户名/密码/存储库组合使用不同的。在 settings.xml 中,设置 为部署所需的默认配置文件。当您需要切换到不同的配置文件时,您可以在命令行上执行此操作。<server>
<id>
<activeProfiles>
settings.xml
据我所知,您不能在同一个文件中混合凭据;似乎这将是一个很大的安全漏洞。每个用户都应该在您的构建机器上拥有自己的登录名;然后每个人都有自己的.m2/settings.xml
和.m2/settings-security.xml
文件(您需要后者来加密密码)。每个用户添加条目,其 id 与正在部署的项目<server>
的部分中的 id 匹配。<distributionManagement>
例如,您可以为每个用户使用不同的配置文件,并将用户名和密码设置为这些配置文件中的属性。然后,您可以根据您目前想要使用的用户来激活配置文件。您还可以将配置文件之一设置为默认处于活动状态,这样您就不必在调用中始终使用配置文件名称。
另一种方法是为用户提供单独的 settings.xml 文件,并使用 -s 标志为 maven 调用指定所需的文件。