当maven构建一个jar文件时,它会将模块的pom文件放在里面(似乎在/目录中)。当我从ant构建一个jar文件以通过maven ant任务部署时,这个pom文件(jar中的那个)的存在是否重要?它似乎不是,但我只是想确保它没有在任何地方被使用,并确认它应该在jar文件中的确切位置。
e5nszbig1#
这个 pom.xml 以及 pom.properties 文件被打包在jar中,这样maven生成的每个工件都是自描述的,并且还允许您在需要时在自己的应用程序中使用元数据。一个简单的用法可能是检索应用程序的版本。也就是说,如果需要的话,可以通过mavenarchiverconfiguration取消包含这些文件,mavenarchiverconfiguration允许一个boolean addmavendescriptor参数,并且不包含它们是安全的(即使我觉得有它们很好)。例如,对于一个jar:
pom.xml
pom.properties
<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。这应该能回答你的问题。
META-INF/maven/${groupId}/${artifactId}/pom.xml
META-INF/maven/${groupId}/${artifactId}/pom.properties
r8uurelv2#
jar中的pom.xml设计用于以下目的,自动依赖项解析。jar的部署。可以自动从jar中提取pom.xml。存储库完整性检查(jar匹配pom)。我不知道这些功能是否在任何地方实现过。你当然可以忽略它。
2条答案
按热度按时间e5nszbig1#
这个
pom.xml
以及pom.properties
文件被打包在jar中,这样maven生成的每个工件都是自描述的,并且还允许您在需要时在自己的应用程序中使用元数据。一个简单的用法可能是检索应用程序的版本。也就是说,如果需要的话,可以通过mavenarchiverconfiguration取消包含这些文件,mavenarchiverconfiguration允许一个boolean addmavendescriptor参数,并且不包含它们是安全的(即使我觉得有它们很好)。例如,对于一个jar:
关于这些文件的位置,addmavendescriptor的文档中说:
生成的归档文件是否包含以下两个maven文件:
pom文件,位于
META-INF/maven/${groupId}/${artifactId}/pom.xml
一pom.properties
文件,位于META-INF/maven/${groupId}/${artifactId}/pom.properties
默认值为true。这应该能回答你的问题。
r8uurelv2#
jar中的pom.xml设计用于以下目的,
自动依赖项解析。
jar的部署。可以自动从jar中提取pom.xml。
存储库完整性检查(jar匹配pom)。
我不知道这些功能是否在任何地方实现过。你当然可以忽略它。