Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从pom中删除重复依赖项?_Java_Maven_Dependencies_Dependency Management_Multi Module - Fatal编程技术网

Java 如何从pom中删除重复依赖项?

Java 如何从pom中删除重复依赖项?,java,maven,dependencies,dependency-management,multi-module,Java,Maven,Dependencies,Dependency Management,Multi Module,我在maven有一个多模块项目,其中一些模块依赖于其他模块。现在,充当依赖项的模块具有一些依赖项,这些依赖项已经在依赖模块的pom中列出 是否有一种快速的方法来识别此类重复的依赖项并将其从依赖模块的pom中删除?可以扩展项目的依赖项树以显示依赖项冲突。 使用命令 mvn依赖项:tree-Dverbose=true 识别这种重复的依赖关系。它显示pom中的所有重复项和冲突 使用pom的部分下的标记排除此类重复依赖项 <dependencies> <dependency&g

我在maven有一个多模块项目,其中一些模块依赖于其他模块。现在,充当依赖项的模块具有一些依赖项,这些依赖项已经在依赖模块的pom中列出


是否有一种快速的方法来识别此类重复的依赖项并将其从依赖模块的pom中删除?

可以扩展项目的依赖项树以显示依赖项冲突。 使用命令

mvn依赖项:tree-Dverbose=true

识别这种重复的依赖关系。它显示pom中的所有重复项和冲突

使用pom的
部分下的
标记排除此类重复依赖项

<dependencies>
    <dependency>
      <groupId>sample.ProjectA</groupId>
      <artifactId>Project-A</artifactId>
      <version>1.0</version>
      <scope>compile</scope>
      <exclusions>
        <exclusion>  <!-- declare the exclusion here -->
          <groupId>sample.ProjectB</groupId>
          <artifactId>Project-B</artifactId>
        </exclusion>
      </exclusions> 
    </dependency>
  </dependencies>

示例项目a
项目A
1
编译
示例项目B
B项目

如果您使用eclipse作为IDE,那么可以在相关pom.xml的依赖关系层次结构中看到重复项。使用Exclutions标签,它们可以被删除。

有一个JBoss工具可以帮助解决这些问题:
不幸的是,这几天似乎没有得到积极的开发。

您可以使用
mvn depgraph:graph-Dincludes=ets.tkt-DshowDuplicates-Dscope:compile。
要使用此插件,请将其放在您的settings.xml上

<settings>
  . . .
  <pluginGroups>
    <pluginGroup>com.github.ferstl</pluginGroup>
  </pluginGroups>

</settings>

. . .
com.github.ferstl
当您运行上一个控制台命令时,可以转到/target并找到一个.dot文件。可以使用graphviz渲染此文件。
更多信息请参见

您能否举例说明在这种情况下,
mvn dependency:tree
命令如何有用?当您使用-Dverbose=true运行此命令时,它会显示所有重复项和冲突。这是正确的解决方案。