让我们说,ArtifactA依赖于ArtifactB,而ArtifactC也依赖于ArtifactB
我理解“mvn dependency plugin”可以帮助列出项目/工件的依赖关系。
但反过来怎么样?如果我想找到依赖于给定工件的项目/工件列表? 从上面的例子中,给定ArtifactB,我想获得ArtifactA和ArtifactC
我怎样才能做到这一点?
答案 0 :(得分:5)
Maven只能在当前项目上运行,因此它只能检测当前项目(或子模块)与其他项目(包括当前项目的子模块)之间的依赖关系。
所以你可以做的是根据其他子模块搜索特定的子模块:
mycompany:parent
/ \
mycompany:child1 mycompany:child2
/ / \
mycompany:grandchild1 mycompany:grandchild2 mycompany:grandchild3
您可以通过以下方式找到与grandchild3具有依赖关系的所有子项目:
mvn validate -pl child2/grandchild3 -amd
这将在当前项目中依赖于孙子3的所有项目上运行validate
阶段。
答案 1 :(得分:2)
一点也不容易。一种选择是使用m2eclipse,它具有一个名为类搜索的功能。在maven存储库视图中,右键单击存储库并启用完整索引。 然后导航>从maven打开类型 - 在那里你可以查看基于java包约定的所有可用工件。
另一种选择是开发基于JarAnalyzer的自己的工具,例如,它将接受JAR文件并搜索本地maven存储库,寻找满足JAR中导入的包/类的最合适的工件。