当前位置: 首页 > 知识库问答 >
问题:

Maven生成重复的pom。xml和pom。jar中的属性文件

赵雪峰
2023-03-14

我将基于Maven的Spring应用打包为:

mvn install-DskipTests -Peverything. 

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

这里是提取pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.abc.xyz</groupId>
<artifactId>migrate-app</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>migrate-app</name>
<url>http://maven.apache.org</url>
<dependencies>

..

</dependencies>

<profiles>
  <profile>
    <id>everything</id>
    <build>
      <plugins>
        <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.5</source>
          <target>1.5</target>          
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.5</version>
        <configuration>
          <skipTests>true</skipTests>
        </configuration>
      </plugin>            
      </plugins>
    </build>
  </profile>
  </profiles>   

命令的输出:

mvn -version

ApacheMaven 3.0.4(r1232337;2012-01-17 15:44:56 0700)Maven主页: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”,拱门:“x86”,系列:“windows”

共有3个答案

融伯寅
2023-03-14

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

吕飞翼
2023-03-14

这似乎是Eclipse中的冲突导致的一个常见问题,尤其是在m2e wtp集成中。

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

同时尝试更新m2e安装,确保没有安装多个版本的m2e或m2eclipse(Indigo之前的版本)。

一些人提到了其他面临这个问题的人:

  • http://dev.eclipse.org/mhonarc/lists/m2e-users/msg01995.html
  • https://issues.sonatype.org/browse/MECLIPSEWTP-209
  • https://issuetracker.springsource.com/browse/STS-2349
  • https://github.com/sonatype/m2eclipse-extras/issues/9
雍飞雨
2023-03-14

添加

<build>
   <plugins>
     <plugin>
       <artifactId>maven-jar-plugin</artifactId>
       <configuration>
         <archive>
           <addMavenDescriptor>false</addMavenDescriptor>
         </archive>
       </configuration>
     </plugin>
   </plugins>
</build>

敬你的pom.xml

 类似资料:
  • 我有一个使用maven发布插件的gradle多模块项目。发布任务失败,因为maven发布插件生成无效的POM。 它显然是无效的,因为项目起始元素中有重复的属性,而结束元素具有'xmlns="http://maven.apache.org/POM/4.0.0"' 我尝试了gradle 5.6.0和6.1.1,结果相同。 知道如何解决这个问题吗?原因是什么?

  • 我是Maven的新手,运行Eclipse Neon,m2e插件Maven 3.3.9: 在保存时生成此错误

  • 在将项目安装到(本地)maven存储库中时,我想用当前的实际值替换所有属性占位符,这有可能吗? 总之,我试图在maven中创建一个可定制的项目版本,以解决一些具有可传递依赖关系的问题。 这是我的最小化pom。xml: 在“mvn清理安装”之后,我希望在本地maven存储库中有“~/.m2/repository/com/foo/T/TEST/T-TEST.pom”以下内容: 因此,在将项目安装到ma

  • 我有一个多模块的maven项目。它有两个多模块 父POM. xml(包装类型:pom) Module1 POM. xml(包装类型:jar) Module2 POM. xml(包装类型:jar) 当我使用mvn构建选项构建pom.xml时,我能够获得所有工件(父pom,子jars)。 但我想要。pom文件(不是pom.xml)也用于子JAR。谁能建议我怎么做? 我尝试在pom中添加依赖项,比如ma

  • 我是Struts和Maven新手,正在将动态Web项目转换为Maven。 在DWP下,我只会将所需的JAR文件拖到WEB-INF/lib中,但是使用Maven,看起来我必须使用group pId、artifactId和version将它们添加到中。 我不知道这些字段对于任何给定的JAR文件是什么,并且一直在谷歌上搜索,但是一些简单的教程使用10、20或30个不同的jar文件。 当然,必须有一种更简

  • 我有一个带有子pom B、C和D的父pom A,在B、C和D中,我有相同类型的依赖项。 ie父Pom 儿童Pom 到目前为止,我已经尝试过编辑插件surefire,当试图排除子pom的测试范围时,它不起作用。 我的问题是,是否有一种方法可以将概要文件添加到父pom中,以排除所有子pom的类型测试jar的所有依赖项。谢谢