Плагин 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() вернет список проектов, которыми манипулирует выполнение цели в многомодульном проекте.