Maven - добавьте пользовательскую фазу, чтобы выполнить плагин с другой конфигурацией

StackOverflow https://stackoverflow.com/questions/3127096

  •  30-09-2019
  •  | 
  •  

Вопрос

У меня есть два набора тестов интеграции в одном проекте 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top