Maven 2 如何递归解析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
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这是最后的点睛之笔