要求:我们需要对 settings.xml 的某些部分进行集中控制,例如镜像配置
并且某些部分需要特定于用户[例如:凭据]
所以想法是将通用 settings.xml 置于源代码控制下(例如:svn)并配置父 pom 以便它可以在位置(例如${user.home}/abc/def/settings.xml
)获取通用 settings.xml
我们需要为一些用户特定的东西包含用户特定的 settings.xml
可以将 repo 设置以及例如配置文件设置直接放入父 pom中,因此您无需考虑 settings.xml 那里(尽管镜像配置似乎不可能)。但是,推荐的解决方案是使用 Nexus 或 Artifactory 之类的存储库管理器来控制存储库设置,并且用户只指向存储库管理器。这是对配置进行集中控制的方式,而不是 settings.xml。
正式的Maven 设置参考通知我们如下: -
settings.xml 文件中的 settings 元素包含用于定义以各种方式配置 Maven 执行的值的元素,例如 pom.xml,但不应捆绑到任何特定项目或分发给受众。其中包括本地存储库位置、备用远程存储库服务器和身份验证信息等值。
有 2 个有用的链接可获取更多信息,如下所示:-
2.为存储库使用镜像
我总是将 settings.xml 与 POM 一起使用,例如:-
<properties>
<svnHost>https://myhost/svn/</svnHost>
<svnUser>the user id</svnUser>
<svnPassword>the password</svnPassword>
</properties>
<scm>
<connection>
scm:svn:${svnHost}/${project.artifactId}/trunk
</connection>
<developerConnection>
scm:svn:${svnHost}/${project.artifactId}/trunk
</developerConnection>
<url>...</url>
</scm>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<version>${my.maven.scm.version}</version>
<configuration>
<username>${svnUser}</username>
<password>${svnPassword}</password>
</configuration>
</plugin>
我希望这可能对您有所帮助并给您一个想法。