Как полностью пропустить модульные тесты и интеграционные тесты во время подготовки и выполнения выпуска maven с помощью плагина выпуска maven

#maven #maven-release-plugin

#maven #maven-release-plugin

Вопрос:

Я настроил некоторую автоматизацию для выполнения семантического управления версиями maven с помощью плагина выпуска maven. Поэтому я использую следующее :-

 mvn -B clean release:clean -DpreparationGoals=clean release:prepare -Darguments="-DskipTests" -Darguments="-DskipITs" -Darguments="-Dmaven.javadoc.skip=true" release:perform -Dusername=$GIT_USERNAME -Dpassword=$GIT_PASSWORD  

Все работает отлично, за исключением того факта, что на этапе выполнения я все еще вижу, что ТЕСТЫ выполняются в наших журналах jenkins.
Мне интересно, какой наилучший способ пропустить какие-либо тесты во время подготовки и выполнения этого выпуска maven без необходимости вносить какие-либо изменения в существующие pom.xml поскольку я хотел бы обеспечить это с помощью аргументов maven, передаваемых в качестве аргументов CLI, чтобы нам не приходилось обновлять 1000 pom с помощью этой автоматизации
Любая помощь или предложения здесь будут с благодарностью приняты, как всегда.

Ответ №1:

Для этого вы можете использовать arguments свойство. Цитирование может быть очень важным.

Пример:

 mvn release:prepare ... -Darguments="-Dmaven.test.skip=true -DsomethingElse=whatever"
  

Здесь я передаю maven.test.skip свойство (определенное maven-surefire-plugin test целью) до выполнения mvn run по prepare цели maven-release-plugin .

Комментарии:

1. Спасибо, Лэрд. итак, если мне нужно пропустить тесты и модуль, и интеграцию на этапе подготовки и выполнения, должен ли я просто использовать следующее: — mvn -B clean release: clean -DpreparationGoals=clean release:prepare -Darguments =»-Dmaven.test.skip= true -DskipITs» release: выполнить

2. (Для записи и тех, кто придет после вас: я НАСТОЯТЕЛЬНО рекомендую не отключать тесты. Я также комментирую только arguments часть командной строки.) Да, я думаю, это подходит для вашего варианта использования. Обратите внимание, что maven.test.skip это задокументировано, чтобы исключить также компиляцию тестов.