Я использую плагин maven, который определяет тип упаковки и жизненный цикл для моих проектов. Давайте назовем эту упаковку "foo", определяемой как "foo-plugin". Я не могу контролировать этот плагин, но хочу расширить определение его жизненного цикла в своем плагине.
Я пишу другой плагин, давайте назовем его "бар-плагин". Я хочу, чтобы определенная цель моего плагина была вызвана в фазе процесса-источника проекта с упаковкой "foo". Не в любом другом случае. Я определил mojo для выполнения на этапе process-sources, но это заставляет его выполняться на этапе-source любого проекта, а не только с пакетом "foo".
/**
* @goal bar
* @phase process-sources
*/
public class BarMojo extends AbstractMojo
Я также пытался использовать пользовательское определение жизненного цикла для расширения существующего жизненного цикла, например:
<component-set>
<components>
<component>
<role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
<role-hint>foo</role-hint>
<implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
<configuration>
<phases>
<process-sources>${groupId}:${artifactId}:${version}:bar</process-sources>
</phases>
</configuration>
</component>
</components>
</component-set>
Это, похоже, полностью игнорируется, даже если для элемента <extensions>
в pom установлено значение true. Можно ли даже продлить жизненный цикл, определенный одним плагином, с помощью другого, и если да, то что я делаю не так?
Edit:
Структура проекта Maven выглядит следующим образом: название проекта (упаковка)
mycompany-parent (pom)
- someprojecttype-parent (pom)
- - проект-1 (foo)
- - проект-2 (foo)
Я хочу добавить плагин к someprojecttype-parent, для которого для упаковки установлено значение pom. Это приводит к выполнению цели панели при создании родительского проекта. Я хочу выполнить план цели только при построении проекта-1 и проекта-2.