Подтвердить что ты не робот

Настроить порядок сборки для мультипроекта в Maven

У меня есть несколько проектов в maven:

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

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

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

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

4b9b3361

Ответ 1

Как упоминается в 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:
  • зависимость проекта от другого модуля в сборке
  • объявление плагина, где плагин - это еще один модуль в сборке
  • зависимость плагина от другого модуля в сборке
  • объявление расширения сборки на другом модуле в сборке
  • порядок, объявленный в элементе modules (если не применяется другое правило)

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

Надеюсь, это поможет вам в достижении ваших требований.

Привет,

Charlee Ch.

Ответ 2

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

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

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

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

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