【问题标题】:Maven: How to find artifacts which depend on another artifactMaven:如何找到依赖于另一个工件的工件
【发布时间】:2011-01-20 10:15:20
【问题描述】:

让我们说,ArtifactA 依赖于 ArtifactB,而 ArtifactC 也依赖于 ArtifactB

我了解“mvn 依赖插件”可以帮助列出项目/工件的依赖关系。

但是反过来呢?如果我想查找依赖于给定工件的项目/工件列表? 从上面的例子中,给定ArtifactB,我想得到ArtifactA和ArtifactC

我怎样才能做到这一点?

【问题讨论】:

标签: java maven


【解决方案1】:

Maven只能对当前项目进行操作,所以只能检测当前项目(或子模块)与其他项目(包括当前项目的子模块)之间的依赖关系。

所以你可以做的是根据其他子模块搜索特定的子模块:

                      mycompany:parent
                    /                  \
         mycompany:child1       mycompany:child2
            /                 /                  \
  mycompany:grandchild1   mycompany:grandchild2   mycompany:grandchild3

您可以通过以下方式找到所有依赖于 grandchild3 的子项目:

mvn validate -pl child2/grandchild3 -amd

这将在当前项目中依赖于 grandchild3 的所有项目上运行 validate 阶段。

【讨论】:

    【解决方案2】:

    这并不容易。一种选择是使用 m2eclipse,它有一个名为 Class search 的功能。在 Maven 存储库视图中,右键单击存储库并启用完整索引。 然后 Navigate > Open type from maven - 在那里您可以查看所有基于 java 包约定的可用工件。

    另一种选择是基于 JarAnalyzer 开发您自己的工具,该工具将接受 JAR 文件并搜索您的本地 maven 存储库,寻找满足从 JAR 导入的包/类的最合适的工件。

    【讨论】:

    • 实际上使用mvn validate 很容易,请参阅@Sean Patrick Floyd 的回答
    猜你喜欢
    • 2011-06-08
    • 2018-02-21
    • 2011-01-24
    • 2011-07-14
    • 2011-05-08
    • 2015-01-24
    • 1970-01-01
    • 2013-12-29
    • 1970-01-01
    相关资源
    最近更新 更多