如何找到任何给定项目的maven依赖项?

时间:2015-01-30 03:08:43

标签: java maven aether

我正在尝试构建一个可以找到任何给定项目的maven依赖项的单独项目。我指的是Aether样本,但我找不到定义另一个项目来查找依赖项的方法。

如下图1所示,项目1具有项目2的依赖项,项目2具有项目3的依赖项。如果我在依赖项查找器上选择项目1,它应该显示项目1的所有依赖项。项目2。

enter image description here

我指的是跟随Aether代码段,但我无法找到设置另一个项目的方法(通过设置pom文件或项目目录)

    RepositorySystem system = Booter.newRepositorySystem();

    RepositorySystemSession session = Booter.newRepositorySystemSession( system );

    Artifact artifact = new DefaultArtifact( "org.eclipse.aether:aether-impl:1.0.0.v20140518" );

    ArtifactDescriptorRequest descriptorRequest = new ArtifactDescriptorRequest();
    descriptorRequest.setArtifact( artifact );
    descriptorRequest.setRepositories( Booter.newRepositories( system, session ) );

    ArtifactDescriptorResult descriptorResult = system.readArtifactDescriptor( session, descriptorRequest );

    for ( Dependency dependency : descriptorResult.getDependencies() )
    {
        System.out.println( dependency );
    }

2 个答案:

答案 0 :(得分:1)

您不需要以编程方式执行此操作。您只需调用dependency:tree

即可
mvn dependency:tree

我还建议您使用-Dverbose调用它,以防您真的非常难以确定为什么某个版本的依赖项被选择而不是另一个版本(您可能期望它)它改为使用。)

或者,或者,如果您希望以平面形式查看依赖项,也可以使用dependency:list

mvn depenency:list

答案 1 :(得分:0)

如果您正在使用带有maven2插件的eclipse,那么当您打开pom文件时,它会显示几个视图以根据您的要求查看依赖项。