Плагин Maven: доступ к ресурсам через несколько модулей

В настоящее время я пишу пользовательский плагин maven для генерации XML-файла в многомодульном проекте maven.

Моя структура maven довольно стандартна: один родительский проект и модуль по компонентам проекта в папке родительского проекта:

-- Parent
  -- module A
  -- module B
  -- module C

Мне нужно перечислить, по модулю, набор классов, помеченных пользовательской аннотацией. Я уже написал набор пользовательских аннотаций и процессор аннотаций для создания XML-файла во время компиляции в соответствующем выходном каталоге модуля (${project.build.outputDirectory}) .

Теперь мне нужно объединить каждый модуль XML в один файл, но я не знаю, как получить доступ к каждому модулю из моего плагина maven, за исключением того, что каждый путь задан в качестве параметров (мне не нравится этот метод).

Есть идеи, как это сделать? Могут ли плагины maven проходить через модули проекта?

Заранее спасибо.

2 ответа

Решение

Чтобы получить список всех проектов, которые вы можете использовать:

List<MavenProject> projectList = MavenSession.getProjectDependencyGraph().getSortedProjects()

Если одна из ваших целей будет выполнена правильно, вы получите все, что вам нужно. Каждый MavenProject содержит getBaseDir() и т.п.

После некоторых исследований кажется, что MavenProject.getCollectedProjects() вернет список проектов, которыми манипулирует выполнение цели в многомодульном проекте.

Другие вопросы по тегам