一千萬個為什麽

搜索

如何以遞歸方式解析Maven 2插件中的依賴項

我正在編寫一個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()</代碼>,     使用 <�代碼> project.getArtifacts()</代碼>     代替。這樣你就可以自動獲得傳遞依賴。要啟用它:將你的魔力標記為

  • @requiresDependencyResolution compile or
  • @requiresDependencyCollection compile

(有關參考,請參閱 Mojo API規範)。

B)你真的想使用遺留依賴API嗎?為什麽不使用新的Maven 3 Aether API

轉載註明原文: 如何以遞歸方式解析Maven 2插件中的依賴項