当 Maven 构建 JAR 文件时,它会将模块的 POM 文件放入其中(似乎在目录 <groupid>/<artifactid> 中)。
当我从 Ant 构建一个 JAR 文件以通过 Maven Ant 任务部署时,这个 POM 文件(JAR 中的那个)的存在是否重要?它似乎不是,但我只是想确保它没有在任何地方使用,并确认它应该在 JAR 文件中的确切位置。
和文件被打包在 JAR 中,因此 Maven 生成的每个工件都是自描述的,并且还允许您在需要时在自己的应用程序中使用元数据pom.xml
。pom.properties
一种简单的用途可能是检索应用程序的版本。
也就是说,如果需要,可以通过允许布尔addMavenDescriptor参数的 MavenArchiverConfiguration 停用这些文件的包含,并且不包含它们是安全的(即使我觉得拥有它们很好)。例如对于一个 JAR:
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
</archive>
</configuration>
</plugin>
</plugins>
...
</build>
...
</project>
关于这些文件的位置,addMavenDescriptor的文档说:
生成的存档是否会包含这两个 Maven 文件:
- pom 文件,位于存档中
META-INF/maven/${groupId}/${artifactId}/pom.xml
- 一个
pom.properties
文件,位于存档中META-INF/maven/${groupId}/${artifactId}/pom.properties
默认值是true。
这应该回答你的问题。
JAR 中的 pom.xml 旨在用于以下目的,
我不知道这些功能是否在任何地方实现。你可以肯定地忽略它。