Я пытаюсь написать плагин Maven, который выполняет следующие действия: получает все зависимости модуля и выясняет, имеет ли какая-либо его транзитивная зависимость транзитивная зависимость от любого родственного модуля текущего модуля.
Моя идея такая:
- Получите родительский модуль модуля (родительский элемент только для POM), а затем получите все его модули, чтобы найти братьев и сестер текущего модуля.
- Получите транзитивные зависимости модуля (но только для нашего идентификатора группы).
- Для каждой транзитивной зависимости получите ее транзитивные зависимости и выясните, является ли какая-либо из них одним из родственных модулей.
Я пробовал делать это в стиле Maven 2 и теперь закончил с Aether. Однако я не уверен, можно ли делать то, что я хочу, с Aether.
В настоящее время я могу получить родительский элемент только для POM (не с Aether, а с MavenProject), и я могу получить транзитивные зависимости, а затем отфильтровать их, чтобы сохранить только артефакты с нашим идентификатором группы. Я не нашел эквивалента Maven FilterArtifacts в Aether.
Итак, вопросы: верны ли мои представления о том, как я могу достичь своей цели? Могу ли я сделать это только с эфиром? Если да, как мне это сделать? Или мне нужно прибегнуть к смеси Maven 2 и Aether? (Я немного пробовал, но различия между версией SNAPSHOT и версией SNAPSHOT с отметкой времени немного громоздки)
В любом случае, любая помощь приветствуется!