Maven在jar中生成重复的pom.xml和pom.properties文件

我打包我的基于Maven的Spring应用程序:

mvn install-DskipTests -Peverything. 

出现了一些奇怪的事情。 在生成的jar的META-INF中,我找到了重复的pom.xml和pom.properties文件。 有人可以解释一下吗? 谢谢。

在此处输入图像描述

这是提取的pom.xml

  4.0.0 com.abc.xyz migrate-app jar 1.0-SNAPSHOT migrate-app http://maven.apache.org  ..    everything    org.apache.maven.plugins maven-compiler-plugin  1.5 1.5    org.apache.maven.plugins maven-surefire-plugin 2.5  true       

命令输出:

 mvn -version 

Apache Maven 3.0.4(r1232337; 2012-01-17 15:44:56 + 0700)Maven home:C:\ apache-maven-3.0.4 \ bin .. Java版本:1.6.0_30,供应商:Sun Microsystems Inc .Java home:C:\ Program Files(x86)\ Java \ jdk1.6.0_30 \ jre默认语言环境:en_US,平台编码:Cp1252操作系统名称:“windows 7”,版本:“6.1”,arch:“x86”,家庭:“窗户”

    maven-jar-plugin   false      

到你的pom.xml

看起来这是由Eclipse中的冲突引起的一个常见问题,尤其是m2e-wtp集成。

有些人表示可以通过在要运行的目标列表中包含clean来修复它,例如mvn clean package

还要尝试更新m2e安装,并确保没有安装m2em2eclipse (pre-Indigo版本)的多个版本。

一些针对此问题的其他人的引用:

我知道这个问题有点老了,但我想我会就这个问题分享一些模糊的信息。 我遇到了同样的问题,我发现当我打开Eclipse并打开Eclipse时,我的工作区首选项设置为使用本机挂钩或轮询刷新工作区,额外的pom.xml和pom.properties文件由eclipse添加! 关闭eclipse或删除刷新工作区选项为我解决了问题。 这是一个很难追查的人,所以希望其他人也能从中受益。

跟进@ Dan的工作:

我尝试了你的解决方案,它似乎工作 – 乍一看。 然而,它只是推迟了最终的失败。

在任何时候刷新工作空间时,都会在/ classes目录中创建pom.xml和pom.properties文件。 之后,任何后来的“包”目标将包含.jar中的重复文件,从而打破以后的任何签名。

如果轮询开启 – 你“快速失败”。 如果它关闭,您可以在将来的构建中随意失败。

不确定你的意思是duplicate但maven创建的jar确实带有META-INF文件夹中的pom.xmlpom.properties 。 请参阅maven入门指南的此部分 。