2016-08-29 4 views
0

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

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

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

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

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

Любая идея о том, как это сделать? Могут ли плагины maven пересекать проектные модули?

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

+0

представляет новый модуль под одним и тем же родителем и добавляет все другие модули в качестве зависимостей, чтобы удостовериться, что порядок сборки, а затем в этом новом модуле вы можете получить доступ ко всем этим ресурсам, указав относительное местоположение, ex ../module a/target/xmla.xml, если вы не хотите идти с этим решением, вы можете разоблачить эти xml как артефакты каждого модуля, и этот новый модуль может ссылаться на этот артефакт как зависимость. – hunter

ответ

0

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

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

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

+0

Работайте отлично, спасибо! – Lrk

0

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

+0

Фактически собранные проекты возвращают проекты только в подмодулях, если они отмечены как зависимость – Lrk

Смежные вопросы