【问题标题】:maven: specify settings.xml location in pommaven:在 pom 中指定 settings.xml 位置
【发布时间】:2013-03-05 23:44:23
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: maven build settings


    【解决方案1】:

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

    【讨论】:

    • 能否请您详细说明如何将镜像放在 pom.xml 中,我在链接上看不到这一点
    • @JigarJoshi 你是对的,它不允许你在那里设置镜像配置,只有存储库。我的错。
    【解决方案2】:

    正式的Maven Settings Reference通知我们如下:-

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

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

    1.Injecting POM Properties via Settings.xml

    2.Using Mirrors for Repositories

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

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

    我希望这可以帮助你并给你一个想法。

    【讨论】:

    • 在 SCM 中使用 ${svnHost} 等占位符只会暂时起作用,直到您第一次通过 Maven 发布插件进行发布。
    • +1 到@khmarbaise。 pom.xml 设计为独立工作,因此引入依赖项会违反 Maven 准则。
    猜你喜欢
    • 2013-01-17
    • 2015-07-07
    • 2016-05-07
    • 2011-01-14
    • 2011-04-17
    • 2022-01-17
    • 2022-06-10
    • 1970-01-01
    相关资源
    最近更新 更多