#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
это задокументировано, чтобы исключить также компиляцию тестов.