Как рекурсивно разрешать зависимости в плагине Maven 2 - PullRequest
4 голосов
/ 25 февраля 2011

Я пишу плагин 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);

    ....
}

Как я могу сделать то же самое рекурсивно, чтобы я также нашел зависимости зависимостей и так далее?

1 Ответ

13 голосов
/ 25 февраля 2011

А) Не используйте project.getModel().getDependencies(), используйте project.getArtifacts() вместо. Таким образом, вы автоматически получаете переходные зависимости. Чтобы включить это: пометьте mojo как

  • @requiresDependencyResolution compile или
  • @requiresDependencyCollection compile

(см. Спецификация Mojo API *1016* для справки).

B) Вы действительно хотите использовать устаревший API зависимостей? Почему бы не использовать новый API-интерфейс Maven 3 ?

...