Переопределение «чистого» жизненного цикла в Maven - PullRequest
10 голосов
/ 02 марта 2011

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

В нем говорится: Чтобы определить новый жизненный цикл для типа упаковки, вам необходимо настроить компонент LifecycleMapping в Plexus. В своем проекте плагина создайте META-INF / plexus / components.xml в каталоге src / main / resources. В компонент.xml добавьте содержимое, как показано ниже, и все готово. С помощью приведенной ниже конфигурации я могу настроить жизненный цикл по умолчанию для типа упаковки jar. Теперь, если я исполняю
$ mvn package
Он сразу выполняет этап «пакет», пропуская все остальные этапы жизненного цикла по умолчанию, и выполняет цель «echo» для 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, которое будет выполнять цель «clean» для плагина «maven-clean-plugin», я хотел выполнить цель «customClean» для «customPlugin».

1 Ответ

19 голосов
/ 02 марта 2011

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

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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...