maven放在jar文件中的pom文件的意义是什么,它被什么东西使用了吗?

ix0qys7i  于 2021-06-30  发布在  Java
关注(0)|答案(2)|浏览(309)

当maven构建一个jar文件时,它会将模块的pom文件放在里面(似乎在/目录中)。
当我从ant构建一个jar文件以通过maven ant任务部署时,这个pom文件(jar中的那个)的存在是否重要?它似乎不是,但我只是想确保它没有在任何地方被使用,并确认它应该在jar文件中的确切位置。

e5nszbig

e5nszbig1#

这个 pom.xml 以及 pom.properties 文件被打包在jar中,这样maven生成的每个工件都是自描述的,并且还允许您在需要时在自己的应用程序中使用元数据。一个简单的用法可能是检索应用程序的版本。
也就是说,如果需要的话,可以通过mavenarchiverconfiguration取消包含这些文件,mavenarchiverconfiguration允许一个boolean 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.xmlpom.properties 文件,位于 META-INF/maven/${groupId}/${artifactId}/pom.properties 默认值为true。
这应该能回答你的问题。

r8uurelv

r8uurelv2#

jar中的pom.xml设计用于以下目的,
自动依赖项解析。
jar的部署。可以自动从jar中提取pom.xml。
存储库完整性检查(jar匹配pom)。
我不知道这些功能是否在任何地方实现过。你当然可以忽略它。

相关问题