Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 2 如何递归解析Maven 2插件中的依赖项_Maven 2_Maven_Maven Plugin - Fatal编程技术网

Maven 2 如何递归解析Maven 2插件中的依赖项

Maven 2 如何递归解析Maven 2插件中的依赖项,maven-2,maven,maven-plugin,Maven 2,Maven,Maven Plugin,我正在编写一个Maven 2插件,它必须迭代所有项目依赖项,并递归地遍历这些依赖项的所有依赖项。到目前为止,我仅通过以下代码解决了直接依赖关系: for (Dependency dependency : this.project.getModel().getDependencies()) { Artifact artifact = this.artifactFactory.createArtifact( dependency.getGroupId(), d

我正在编写一个Maven 2插件,它必须迭代所有项目依赖项,并递归地遍历这些依赖项的所有依赖项。到目前为止,我仅通过以下代码解决了直接依赖关系:

for (Dependency dependency : this.project.getModel().getDependencies())
{
    Artifact artifact = this.artifactFactory.createArtifact(
        dependency.getGroupId(),
        dependency.getArtifactId(),
        dependency.getVersion(),
        dependency.getScope(),
        dependency.getType());
    this.artifactResolver.resolve(
         artifact,
         this.remoteRepositories,
         this.localRepository);

    ....
}
我怎样才能递归地执行相同的操作,这样我就可以找到依赖项的依赖项等等?

A)不要使用
project.getModel().getDependencies()
, 使用 相反这样,您可以自动获得可传递的依赖项。要实现这一点:将你的魔力标记为

  • @requiresDependencyResolution编译
  • @requiresDependencyCollection编译
(参考请参见)


B) 你真的想使用旧的依赖API吗?为什么不呢?

A)我已经尝试过getArtifacts(),但它总是返回一个空集。所以我只是错过了这个注释。现在效果很好,谢谢!B) 目前我必须支持Maven 2。希望这很快就会改变。亲爱的未知投票人,也许你想具体说明你不喜欢这个答案的哪些方面?+1这是最后的点睛之笔