Сложное разрешение зависимостей с помощью Maven и, возможно, Aether - как?

Я пытаюсь написать плагин Maven, который выполняет следующие действия: получает все зависимости модуля и выясняет, имеет ли какая-либо его транзитивная зависимость транзитивная зависимость от любого родственного модуля текущего модуля.

Моя идея такая:

  • Получите родительский модуль модуля (родительский элемент только для POM), а затем получите все его модули, чтобы найти братьев и сестер текущего модуля.
  • Получите транзитивные зависимости модуля (но только для нашего идентификатора группы).
  • Для каждой транзитивной зависимости получите ее транзитивные зависимости и выясните, является ли какая-либо из них одним из родственных модулей.

Я пробовал делать это в стиле Maven 2 и теперь закончил с Aether. Однако я не уверен, можно ли делать то, что я хочу, с Aether.

В настоящее время я могу получить родительский элемент только для POM (не с Aether, а с MavenProject), и я могу получить транзитивные зависимости, а затем отфильтровать их, чтобы сохранить только артефакты с нашим идентификатором группы. Я не нашел эквивалента Maven FilterArtifacts в Aether.

Итак, вопросы: верны ли мои представления о том, как я могу достичь своей цели? Могу ли я сделать это только с эфиром? Если да, как мне это сделать? Или мне нужно прибегнуть к смеси Maven 2 и Aether? (Я немного пробовал, но различия между версией SNAPSHOT и версией SNAPSHOT с отметкой времени немного громоздки)

В любом случае, любая помощь приветствуется!


person eerriicc    schedule 15.06.2012    source источник
comment
Можете ли вы обновиться до Maven 3? Он использует Aether для управления зависимостями. Вам будет легче отпишусь.   -  person Oliver    schedule 15.06.2012
comment
Да, я использую Maven 3 - я все равно не думаю, что Aether работает с Maven 2.   -  person eerriicc    schedule 18.06.2012


Ответы (1)


Вы можете использовать библиотеку jcabi-aether (я один из разработчиков), которая может вам помочь делать то, что хочешь:

  1. Получите список модулей от MavenProject
  2. Получите их зависимости
  3. Просмотрите их по очереди и разрешите с помощью _2 _

Должен нормально работать с Maven 3

person yegor256    schedule 28.08.2012