Maven构建工件中的.pom文件是什么?

时间:2014-10-29 11:52:04

标签: maven repository pom.xml artifact

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

3 个答案:

答案 0 :(得分:1)

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

在你的特定例子中(真的是旧的2005年),这是一个pom文件,它是在maven没有这样分发的时候创建的。在这种情况下,该文件不包含任何依赖项。

如果你看看这里:

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

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

答案 1 :(得分:0)

到目前为止,我找到的最佳答案是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将通过相应的pom识别。

答案 2 :(得分:0)

希望这个实际示例可以帮助您更好地理解:

  • 您有一个maven中央存储库(例如快照存储库)
  • 您正在执行 install 命令。
  • JAR已从您的本地邮局上传到中央邮局。说0.1版本
  • 一段时间后,您还要执行另一个 install 命令。
  • 新的jar将被上载到时间戳排序的0.1SNAPSHOT存储库中。

现在,当任何客户端尝试下载您的JAR文件时,它都会获得时间戳记最新的0.1版本的part(2)。

我只是在尝试部署多个工件时发现了这一点。