Навести порядок сборки для мультипроекта в Maven - PullRequest
13 голосов
/ 06 июля 2011

У меня есть мульти проект в maven, подобный этому:

paren-project
  -> plugin-project
  -> testbed-project

Проект plugin генерирует JAR, который вручную копируется в определенный подкаталог testbed (используя любой встроенный скрипт, такой как или ).Важный момент: я не хочу, чтобы плагин JAR находился в пути к классу тестового стенда.

Но я не могу найти решение, чтобы заставить проект плагина быть собранным ДО проекта тестового стенда.Если я устанавливаю проект плагина как зависимость от тестового проекта, он добавляется в classpath.

Любое решение, или мне нужно переключиться на систему сборки, такую ​​как , или ?

Ответы [ 2 ]

18 голосов
/ 06 июля 2011

Как указано в http://maven.apache.org/guides/mini/guide-multiple-modules.html

Сортировка реактора

Because modules within a multi-module build can depend on each other, 
it is important that The reactor sorts all the projects in a way that 
guarantees any project is built before it is required.

The following relationships are honoured when sorting projects:
  1. Зависимость проекта от другого модуля в сборке
  2. объявление плагина, где плагином являются другие модули в сборке
  3. зависимость плагина от другого модуля в сборке
  4. объявление расширения сборки для другого модуля в сборке
  5. порядок, объявленный в элементе modules (если не применяется другое правило)

Обратите внимание, что используются только "экземпляры" ссылки - элементы dependencyManagement и pluginManagement не приведут к изменениюпорядок сортировки реактора

7 голосов
/ 06 июля 2011

Maven - это универсальная система. Нет необходимости переключаться.

Вы можете добавить зависимость следующим образом:

<dependency>
  <groupId>group</groupId> 
  <artifactId>artifact</artifactId> 
  <optional>true</optional> 
</dependency>

Таким образом, зависимость не будет включена в путь к классам.

Подробнее о Дополнительная зависимость

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