我有一个包含很多Maven库的复杂项目。我不时遇到库版本冲突的问题。我可以打开相互冲突的类,看看所有库都包含在内。但遗憾的是,我找不到一种简单的方法来检查Maven依赖项中引用这些库的位置。你知道如何在Maven树中找到一个库吗?
答案 0 :(得分:5)
你需要Maven Helper插件
https://plugins.jetbrains.com/plugin/7179-maven-helper
它有一个依赖项查看器,可让您在那里解决冲突。安装插件后打开您的pom文件,您将在编辑器窗口的底部看到另一个选项卡。
右键单击任何依赖项以显示上下文菜单,您将看到一个排除它的选项。它会将exclude添加到您的pom文件中。这显然不会为uberjars工作。
答案 1 :(得分:3)
更低技术,你可以让maven用命令告诉你答案
mvn dependency:tree -Dincludes=groupId:artifactId
您也可以从Intellij终端窗口调用此命令。
mvn dependency:tree
将打印整个树,包含添加将允许您过滤特定的工件,使其更容易搜索(虽然我已经知道只是将整个树复制到临时文件而只是做在那里搜索。)
如果您不知道groupId或artifactId已经足够独特,您可以像这样过滤:
mvn dependency:tree -Dincludes=*:artifactId