要求:我们需要对settings.xml的某些部分进行集中控制,例如镜像配置
并且某些部分需要是特定于用户的[例如:凭证]
所以我的想法是将公共settings.xml放在源代码控制下(例如:svn)并配置父pom,以便它可以在位置采用公共settings.xml(例如${user.home}/abc/def/settings.xml
)
我们需要为某些特定于用户的事物包含用户特定的settings.xml
答案 0 :(得分:2)
可以将repo设置以及配置文件设置放入parent pom directly,因此您无需考虑那里的settings.xml(尽管似乎不可能镜像配置)。但是,推荐的解决方案是使用像Nexus或Artifactory这样的存储库管理器来控制repo设置,而用户只能指向存储库管理器。这是对配置进行集中控制的方式,而不是settings.xml。
答案 1 :(得分:0)
正式Maven Settings Reference通知我们如下: -
settings.xml文件中的settings元素包含用于定义以各种方式配置Maven执行的值的元素,例如pom.xml,但不应捆绑到任何特定的项目,或分发给受众。其中包括本地存储库位置,备用远程存储库服务器和 身份验证信息 等值。
以下是有用的更多信息: -
1。Injecting POM Properties via Settings.xml
2。Using Mirrors for Repositories
我总是将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>
我希望这可能有所帮助并给你一个想法。