【问题标题】:What are .pom files in Maven build artifacts?Maven 构建工件中的 .pom 文件是什么?
【发布时间】:2014-10-29 11:52:04
【问题描述】:

您可以从browsing any repository 看到,Maven 构建工件包含.pom 文件。这些文件的内容看起来很像pom.xml 文件。这些文件来自哪里?它们是用来做什么的?此外,构建工件具有maven-metadata.xml 文件,至少在search.maven.org 上,并且这些文件具有与.pom 文件基本相同的内容。这有什么关系?

【问题讨论】:

    标签: maven repository pom.xml artifact


    【解决方案1】:

    这些文件是项目中的 pom 文件。这些在发布构建期间或由其他构建工具(gradle、ivy 等)部署到 maven 存储库。 需要这些文件来描述相应工件的依赖关系,否则您没有其他机会存储此类信息。

    在您的特定示例(实际上是 2005 年)中,这是一个 pom 文件,该文件是在 maven 没有如此分布的时候创建的。在这种情况下,该文件不包含任何依赖项。

    如果你看这里:

    http://search.maven.org/#browse%7C-77609479

    您会看到单个工件的多个版本。如果您现在查看 maven-metadata.xml,您将看到可用版本列表。

    【讨论】:

    • 我也想要这个 .pom 在我的目标目录中。但我没有。我使用maven-deploy-plugin,但它不会为我的父模块项目生成文件。即使这个设置也没有帮助我<generatePom>true</generatePom>
    • @DavutGürbüz 你找到解决方案了吗?我正在寻找生成 .pom 文件的解决方案
    • @TeddyKossoko 我真的不记得主题了:)
    • 哈哈哈。我终于只是应付 pom.xml 并重命名为 file.pom。
    【解决方案2】:

    目前为止我找到的最佳答案是this SO thread。这是一个准确的引用,突出了解释的关键:

    每个 jar 都需要有一个描述它的 pom 文件,你可以像这样添加一些简单的东西:

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>aGroup</groupId>
        <artifactId>aArtifactId</artifactId>
        <version>aVersion</version>
        <packaging>jar</packaging>
        <name>a Name</name>
    </project>
    

    另一个good explanation

    安装到 Nexus 的 POM 将描述 jar。用来拉 与相应 jar 关联的依赖项。当我们添加 jar 作为我们项目的依赖项,所有需要的 jar 包含的jar会通过对应的pom来识别。

    【讨论】:

      猜你喜欢
      • 2011-05-09
      • 2021-09-23
      • 2012-04-06
      • 1970-01-01
      • 2011-01-30
      • 2011-12-03
      • 2012-08-18
      • 1970-01-01
      • 2014-01-27
      相关资源
      最近更新 更多