我想在maven pom.xml中删除重复的依赖项。
我想答复多种工具Linux,Notepad ++,Netbeans,Intellij ......甚至...... VIM等。
示例(我可以明显删除,但我希望搜索替换答案)
`<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>2.7</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet-core</artifactId>
<version>2.7</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-jetty-http</artifactId>
<version>2.7</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-moxy</artifactId>
<version>2.7</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-jetty-http</artifactId>
<version>2.7</version>
</dependency>`
请在本地写回答链接如果删除可能会令人沮丧。感谢。
答案 0 :(得分:3)
您可以使用mvn dependency:tree
命令查找项目中的重复依赖项。
将<exclusions>
标记用于pom的<dependency>
标记,以从maven项目中排除重复的依赖项。
<dependencies>
<dependency>
<groupId>test.ProjectX</groupId>
<artifactId>ProjectX</artifactId>
<version>2.0</version>
<scope>compile</scope>
<exclusions>
<exclusion>
<groupId>test.ProjectY</groupId>
<artifactId>ProjectY</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
答案 1 :(得分:2)
运行 mvn干净 它会告诉你重复的依赖关系。然后删除它们。
答案 2 :(得分:2)
dependency:analyze-duplicate分析pom.xml中的and标记,并确定重复声明的依赖项。
mvn dependency:analyze-duplicate
答案 3 :(得分:0)
由于pom.xml是XML,因此您也可以使用XSLT:
使用此XSLT:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/*">
<dependencies>
<xsl:for-each-group select="dependency" group-by="concat(groupId , '|', artifactId)">
<xsl:sequence select="."/>
</xsl:for-each-group>
</dependencies>
</xsl:template>
</xsl:stylesheet>
从您的pom.xml中剪切<dependencies>
部分作为输入
将XSLT的输出粘贴回pom.xml