Переопределение "чистого" жизненного цикла в Maven

Я просматривал книгу, в которой объясняется, как переопределить жизненный цикл по умолчанию Maven.

В нем говорится: Чтобы определить новый жизненный цикл для типа упаковки, вам нужно настроить компонент LifecycleMapping в Plexus. В проекте плагина создайте META-INF/plexus/components.xml в разделе src/main/resources. В components.xml добавьте содержимое, как показано ниже, и все готово. В приведенной ниже конфигурации я могу настроить жизненный цикл по умолчанию для типа упаковки "jar". Теперь, если я воспользуюсь пакет $mvn
Он отстраняет выполнение фазы пакета, пропуская все остальные фазы жизненного цикла по умолчанию и выполняет "эхо" цель "maven-zip-plugin".

<component-set>
    <components>
        <component>
            <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
            <role-hint>zip</role-hint>
            <implementation>
                org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping
            </implementation>
            <configuration>
                <phases>
                    <package>org.sonatype.mavenbook.plugins:maven-zip-plugin:echo
                    </package>
                </phases>
            </configuration>
        </component>
    </components>
</component-set>

Мой вопрос: как я могу настроить "чистый" жизненный цикл. Например, предположим, когда кто-то типа $ mvn clean
Вместо запуска clean: clean, который выполнит "чистую" цель плагина "maven-clean-plugin", я хотел выполнить цель "customClean" для "customPlugin".

Ответ 1

Для того, что вы описали, проще просто запретить запуск maven-clean-plugin во время фазы clean и вместо этого присоединить customPlugin к фазе clean. Это проще, чем короткое замыкание всего жизненного цикла и сохраняет всю вашу конфигурацию maven в вашем pom.

1 предотвратить maven-clean-plugin

<plugin>
    <artifactId>maven-clean-plugin</artifactId>
    <version>2.4.1</version>
    <configuration>
        <skip>true</skip>
    </configuration>
</plugin>

2 присоедините свой собственный плагин к чистой фазе

<plugin>
    <artifactId>maven-customPlugin-plugin</artifactId>
    <version>customPlugin-version</version>
    <executions>
        <execution>
            <id>customised-clean</id>
            <goals>
                <goal>customClean</goal>
            </goals>
            <phase>clean</phase>
        </execution>
    </executions>
</plugin>