当Maven构建一个JAR文件时,它将模块的POM文件放在里面(看似在目录< groupid> /< artifactid>)。
当我从Ant构建一个JAR文件以通过Maven Ant任务部署时,这个POM文件(JAR中的文件)的存在是否重要?它似乎不是,但我只是想确保它没有在任何地方使用,并确认它应该在JAR文件中的确切位置。
答案 0 :(得分:16)
pom.xml
和pom.properties
文件打包在JAR中,以便Maven生成的每个工件都是自描述的,并且如果需要,还允许您在自己的应用程序中使用元数据。一个简单的用途可能是检索应用程序的版本。
也就是说,如果需要,可以通过MavenArchiverConfiguration停用包含这些文件,它允许布尔addMavenDescriptor参数并且不包含它们是安全的(即使我发现它很好拥有他们)。例如,对于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。
这应该回答你的问题。
答案 1 :(得分:3)
JAR中的pom.xml是为以下目的而设计的,
我不知道是否在任何地方实现了这些功能。你可以肯定地忽略它。