在Maven聚合器插件中初始化完整的依赖树

时间:2018-08-28 09:38:44

标签: java maven-3 maven-plugin

我在Maven中有一个聚合插件,注入了DependencyGraphBuilder。我的目标是在初始化所有子节点的情况下解决当前项目的DependencyNode

@Mojo(name = "mojo", defaultPhase = LifecyclePhase.SITE,
  requiresDependencyResolution = ResolutionScope.COMPILE, aggregator = true)
public class MyMojo extends AbstractMojo {

    @Component(hint = "default")
    private DependencyGraphBuilder dependencyGraphBuilder;

    @Parameter(defaultValue = "${reactorProjects}", readonly = true, required = true)
    private List<MavenProject> reactorProjects;       

}

当前,如果我尝试解析到根节点,则只能获取当前项目的依赖项。我认为Maven不能解决该依赖关系(仅适用于当前项目)。

dependencyGraphBuilder.buildDependencyGraph(project, null, reactorProjects);

总结:

我如何解析子节点以构建完整的依赖树 在Maven反应堆项目中使用DependencyGraphBuilder还是聚合器项目无法做到这一点?

其他信息:

我看过类似的问题,但是所有这些问题都没有承担聚合器项目。

1 个答案:

答案 0 :(得分:0)

由于您尝试实现mvn dependency:tree,所以为什么不从Maven Dependency Plugin复制解决方案。看看TreeMojo,它也将DependencyGraphBuilderDependencyNodeVisitor一起使用。