2013-02-28 3 views
3

Я разработал плагин maven с аннотацией @aggregator.Последующая обработка класса Maven

Если я бегу

mvn clean compile my:artifact:task package 

затем компилирует 2 раза.

Так я вставить этот фрагмент в мой ПОМ

<plugin> 
    <groupId>my</groupId> 
    <artifactId>artifact</artifactId> 
    <version>1.0.0-SNAPSHOT</version> 
    <executions> 
     <execution> 
      <id>post-classes</id> 
      <phase>process-classes</phase> 
      <goals> 
       <goal>task</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

но тогда он будет работать на каждом модуле (@ агрегатор, казалось бы, игнорируется).

Как включить плагин после компиляции?

Редактировать: Моя проблема относится к жизненному циклу eclipse tycho по умолчанию. Но есть major bug, поэтому я был очень смущен.

+0

Где установлен плагин? В дочернем модуле или родительском модуле? – 2013-02-28 10:54:44

+0

аннотация '@ aggregator', если я правильно помню, делает ваш плагин цели только один раз для всего проекта. –

+0

@Kata Я добавил этот xml-фрагмент в родительский pom – Nachtgold

ответ

1

От this:

Для mojos выполняется непосредственно из командной строки, то мохо будет выполняться только один раз, а не за каждый проект в реакторе. Для моджо, привязанных к фазе жизненного цикла, mojo будет выполняться для каждого проекта, где присутствует привязка жизненного цикла.

У вас есть два варианта:

  • Если вы настаиваете на использование агрегатора аннотации: удалить жизненный цикл связывания и запустить его с помощью командной строки, таких как «MVN чистых компилироваться: артефакт: задача банка : баночка». Подобно assembly:assembly, который предназначен для вызова непосредственно из командной строки и никогда не должен привязываться к фазе жизненного цикла сборки.

  • Если вы настаиваете на привязке своего плагина к жизненному циклу, удалите аннотацию агрегатора и следуйте этому порядку article. Идея состоит в том, чтобы изучить свойства проекта, где maven в настоящее время работает на.

+0

Как обеспечить, чтобы мой плагин был выполнен после компиляции, но перед упаковкой? – Nachtgold

+1

@Nachtgold, изменить «mvn clean compile my: artifact: task package» to «mvn clean compile my: artifact: task jar: jar», если вы ожидаете упаковки в банке. –

+1

Прикрепите его к фазе 'prep-package'. – carlspring

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