Выполнение плагина Maven в начале цепочки зависимостей

У меня есть три проекта maven: A -> B -> C. Чтобы лучше объяснить ситуацию, я показываю псевдо-pom.xml:

Пом.xml

<groupId>X</groupId>
<artifactId>A</artifactId>
<version>1</version>

Б пом.xml

<groupId>X</groupId>
<artifactId>B</artifactId>
<version>1.5</version>
<dependency>
  <groupId>X</groupId>
  <artifactId>A</artifactId>
  <version>1</version>
</dependency>

C pom.xml

<groupId>X</groupId>
<artifactId>C</artifactId>
<version>2.5</version>
<dependency>
  <groupId>X</groupId>
  <artifactId>B</artifactId>
  <version>1.5</version>
</dependency>

Я хотел бы выполнить плагин maven только в проекте A, а затем автоматически в другом (B и C), например в цепочке, когда я выполняю в B, тогда и только в C тоже будет автоматически. Проблема в том, что в проекте А нет информации о Б (думаю). Изменение структуры pom - это крайность.

У вас есть идеи, как это сделать? Буду благодарен за любую подсказку.


person pskindero    schedule 15.07.2014    source источник


Ответы (2)


выполнение плагина maven привязано к определенной фазе жизненного цикла сборки maven, например, плагин surefire по умолчанию привязан к фазе test

теперь предположим, что у вас есть плагин, который вы хотите выполнить во всем проекте как цепочку, вам нужно будет создайте отдельный профиль сборки и привяжите выполнение ваших плагинов после этапа проверки

и вызовите mvn validate, чтобы его жизненный цикл перешел только к одной фазе (т.е. проверка), и он будет вызывать ваш плагин как цепочку

person jmj    schedule 15.07.2014
comment
Я немного смущен. Мне нужно добавить дополнительную информацию в мой пользовательский maven settings.xml (я думаю), но я не вижу, как связать мои проекты (A, B, C) и мой плагин для выполнения. Cen вы объясните мне немного ближе? - person pskindero; 16.07.2014

Один из способов, которым вы можете подойти к этому (если вы еще не пробовали): Сохраните корневой файл pom.xml со следующим: ... ...

<packaging>pom</packaging>
   <modules>
     <module>A</module>
     <module>B</module>
     <module>C</module>
   </modules>
 ....
 ...

Это будет «действовать» как цепочка.

person Rajesh Chandra    schedule 15.07.2014