2

要求:我们需要对 settings.xml 的某些部分进行集中控制,例如镜像配置

并且某些部分需要特定于用户[例如:凭据]

所以想法是将通用 settings.xml 置于源代码控制下(例如:svn)并配置父 pom 以便它可以在位置(例如${user.home}/abc/def/settings.xml)获取通用 settings.xml

我们需要为一些用户特定的东西包含用户特定的 settings.xml

4

2 回答 2

2

可以将 repo 设置以及例如配置文件设置直接放入父 pom中,因此您无需考虑 settings.xml 那里(尽管镜像配置似乎不可能)。但是,推荐的解决方案是使用 Nexus 或 Artifactory 之类的存储库管理器来控制存储库设置,并且用户只指向存储库管理器。这是对配置进行集中控制的方式,而不是 settings.xml。

于 2013-03-05T23:59:14.703 回答
0

正式的Maven 设置参考通知我们如下: -

settings.xml 文件中的 settings 元素包含用于定义以各种方式配置 Maven 执行的值的元素,例如 pom.xml,但不应捆绑任何特定项目分发给受众。其中包括本地存储库位置、备用远程存储库服务器和身份验证信息等值。

有 2 个有用的链接可获取更多信息,如下所示:-

1.通过 Settings.xml 注入 POM 属性

2.为存储库使用镜像

我总是将 settings.xml 与 POM 一起使用,例如:-

设置.xml

  <properties>
      <svnHost>https://myhost/svn/</svnHost>
      <svnUser>the user id</svnUser>
      <svnPassword>the password</svnPassword>
  </properties>

pom.xml

<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>

我希望这可能对您有所帮助并给您一个想法。

于 2013-03-06T03:00:03.987 回答