我将基于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”
我知道这个问题有点老了,但我想我会分享一些关于这个问题的模糊信息。我遇到了同样的问题,我发现当我在Eclipse打开的情况下运行maven时,我的工作区首选项设置为使用本机钩子或轮询刷新工作区,额外的pom。xml和pom。属性文件是由eclipse添加的!关闭eclipse或删除刷新工作区选项为我解决了这个问题。这是一个很难追踪的问题,所以希望其他人能从中受益。
这似乎是Eclipse中的冲突导致的一个常见问题,尤其是在m2e wtp集成中。
一些人表示,可以通过将clean包含在要运行的目标列表中来修复它,例如mvn clean package
。
同时尝试更新m2e安装,确保没有安装多个版本的m2e或m2eclipse(Indigo之前的版本)。
一些人提到了其他面临这个问题的人:
添加
<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的所有依赖项。谢谢