【问题标题】:Maven - how to set the Super POMMaven - 如何设置超级 POM
【发布时间】:2012-04-17 12:50:17
【问题描述】:

我需要使用公司本地的 Maven 存储库,仅此而已。现在,Super POM 包含 repo1.maven.org/maven2 - 我想关闭它。

现在,http://maven.apache.org/guides/introduction/introduction-to-the-pom.html 表示“所有 POM 都扩展了超级 POM,除非明确设置”。

如何明确设置?

(Maven 3.0.4)

【问题讨论】:

    标签: maven


    【解决方案1】:

    我假设“本地存储库”是指公司/办公室中可用的存储库,而不是 $HOME/.m2/repository 中的本地存储库。

    在用户的 settings.xml 文件中将您的存储库定义为所有存储库的镜像即可:

      <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                          http://maven.apache.org/xsd/settings-1.0.0.xsd">
    
          <mirrors>
            <mirror>
              <id>companyrepo</id>
              <url>http://localrepo.com/repo</url>
              <mirrorOf>*</mirrorOf>
            </mirror>
          </mirrors>
      </settings>
    

    这样每个项目都将从 Super POM 继承,但 Maven 不会连接到 repo1.maven.org

    【讨论】:

    • 有趣的是,这回答了我的问题,如果不是我的问题。 (我仍然不知道如何设置超级 POM,但我不再需要了 :)
    • SuperPOM 在 maven jars 中的某个地方,你需要找出给定的 jar,再次修改 pom 和 jar 文件。但在我看来,这根本没有意义......
    • 正是上述文档的“除非明确设置”让我相信设置它是要走的路。我停止了。
    【解决方案2】:

    我的理解是,Super POM 为所有 maven POM 提供了广泛使用的功能,除非该功能是由项目 POM 明确提供的(例如,有点像 Java 中的 Object 类)。

    因此,为避免使用公共存储库,您可以指定要在 POM 中使用的(本地)存储库。但是,更好的方法是在 settings.xml 文件中指定本地存储库 - 这允许您使用密码保护本地存储库,而无需将用户名/密码提交到源代码存储库并手动共享它们。

    【讨论】:

      【解决方案3】:

      您正在寻找的是 Maven 的离线模式。使用控制台调用 Maven 时,您可以通过-o--offline 选项启用它。如果您真的想一直启用它,请将&lt;offline&gt;true&lt;/offline&gt; 添加到您的settings.xml

      如果您不能(出于某种原因)使用离线模式,最极端的选择是覆盖central id 的存储库定义。示例:

      <repository>
        <id>central</id>
        <url>file://C:\tmprepo</url>
      </repository>
      

      我推荐基于离线模式的解决方案。干净整洁。

      【讨论】:

      • 抱歉,我的表述误导了您。正如 Tomasz 正确假设的那样,我的意思是谈论公司本地存储库。所以离线模式不适合我。
      猜你喜欢
      • 2012-02-09
      • 2011-10-11
      • 2012-03-29
      • 2012-12-11
      • 2016-07-08
      • 2017-04-18
      • 1970-01-01
      • 1970-01-01
      • 2016-09-26
      相关资源
      最近更新 更多