Maven - несколько сборок в одном пом - PullRequest
6 голосов
/ 24 августа 2009

Можно ли построить несколько артефактов в одном файле POM? Речь идет не о сборке нескольких сборок, но артефакты имеют разные сборки и зависимости, но ссылаются на один и тот же источник.

Например, один артефакт, который мне нужен для сборки, - это файл WAR, который исключает определенные файлы AspectJ из сборки, а другой - файл JAR, для которого эти аспекты необходимо сплетать во время сборки.

Прямо сейчас у меня есть 2 файла pom.xml, которые работают на 2-х копиях одного и того же источника для создания нужных артефактов. Можно ли это сделать в одном ПОМ?

Ответы [ 2 ]

9 голосов
/ 24 августа 2009

Обычно плохая практика - пытаться делать то, что вам нужно, хотя это можно сделать с помощью профилей и сборок, которые я бы порекомендовал против этого.

Вот как бы я подошел к этому.

Разделите код на проект jar и настройте проект jar для использования плагина компилятора aspectj. Сделайте так, чтобы военный проект зависел от jar-проекта, а jar-проект зависел от aspectjrt. Зависимости jar, которые вы хотите исключить, могут быть указаны как «предоставленные» области действия, поэтому они не будут включены в сборку или исключены путем настройки зависимости jar для исключения этих транзитивных зависимостей (см. Раздел Transitive Dependency Exclusion в Документация механизма зависимостей для деталей.

Когда война будет построена, все зависимые от компиляции зависимости (и их транзитивные зависимости) будут объединены в каталог WEB-INF / lib войны (т.е. будет также включен аспектjjt).

Если вам нужно построить оба проекта одновременно, определите pom-агрегатор и укажите оба проекта: jar и war как модули.

0 голосов
/ 24 августа 2009

хм, я думаю, что самым простым способом было бы использование супер-помпы с использованием синтаксиса. Похоже, было бы проще поддерживать, чем один пом с двумя целями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...