Maven - добавьте пользовательскую фазу, чтобы выполнить плагин с другой конфигурацией
Вопрос
У меня есть два набора тестов интеграции в одном проекте Maven - автоматические и ручные тесты. Ручные тесты немногие, но утомительные - им требуется потянуть заглушку серверов и т. Д. Я хотел бы создать отдельную цель для ручных тестов, поэтому я могу запустить что-то вроде mvn manualtests
Чтобы запустить ручные тесты. Если вы просто запустите обычную сборку Maven mvn install
Или так, что автоматические тесты должны быть запущены.
Я уже аннотировал ручные тесты с аннотацией Testng @Test(groups="manual"
. Отказ Теперь целью является две конфигурации плагина Veaverfire, одном запущенном автоматическими тестами, которые связаны с тестовой фазой сборки, и один работает в ручных тестах, которые связаны с другим пользовательским фазой, которые я хотел бы позвонить manualtests
. Отказ Похоже, что это невозможно привязать выполнение плагина к несуществующей фазе (т.е. тот, который не предопределен Maven). Разве невозможно определить свои собственные фазы?
Решение
Это должно быть возможно, хотя и непросто. Первый шаг: посмотрите, как это сделано по умолчанию.
Используйте эту зависимость:
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-core</artifactId>
<version>${maven.version}</version>
</dependency>
Получите источники и посмотрите на компоненты .xml внутри Meta-Inf / Plexus. Там определены как фазы по умолчанию, так и привязки жизненного цикла по умолчанию / фазы.
Создайте плагин, который переопределяет эти фазы по умолчанию (в своих собственных компонентах .xml) и Определить его как расширение
Другие советы
Вы можете использовать профили для этого:http://maven.apache.org/guides/introduction/introduction-to-profiles.html.