Как я могу получить maven-release-plugin, чтобы пропустить мои тесты?

Как я могу запустить maven-release-plugin без запуска тестов?

я пытался

-Dmaven.test.skip=true 

а также

-DskipTests 

а также

-DpreparationGoals=clean

... пока ничего не работает.

Да, я знаю, что не должен выпускать, если тесты не пройдут, но я не могу заставить моих коллег писать надежные тесты.


person Steven    schedule 30.12.2011    source источник


Ответы (6)


-Darguments="-DskipTests" - это то, что вы хотите, или явная настройка разветвленных исполнений в pom.

person bmargulies    schedule 31.12.2011
comment
У меня работает, спасибо и +1, но ... Почему это нужно? - person javamonkey79; 10.10.2012
comment
Это необходимо, потому что в процессе выпуска создается новый процесс maven, а стандартные -DskipTests не передаются как системные свойства. - person Eddie; 03.12.2012
comment
Хотел бы я проголосовать за вас 2 за. Я потратил часы, пытаясь понять это правильно ... но 1. Я что-то пропустил в документации или в документации mvn чего-то не хватает? 2. Я настроил <skipTests>true</skipTests> в POM моей компании. Все равно не сработало. То, что сработало, было вашим решением. - person Pulak Agrawal; 11.12.2012
comment
Вам нужна какая-то конкретная конфигурация в помпе, чтобы это работало? - person DenCowboy; 14.06.2018

-Darguments="..." передает аргументы разветвленному процессу maven, но важно понимать, что здесь используются два разных переключателя. -DskipTests заставляет maven не запускать какие-либо тесты, но тесты по-прежнему компилируются (это важно, если у вас есть какие-либо зависимости от типа test-jar). -Dmaven.test.skip=true заставляет maven даже не компилировать тесты, что означает, что никакие тестовые банки не будут сгенерированы.

Таким образом, вы должны использовать -Darguments, но для пропуска запущенных тестов используйте только skipTests, чтобы остановить их компиляцию, используйте maven.test.skip.

person Software Engineer    schedule 08.02.2013

Если вы просто хотите пропустить интеграционные тесты, это сделает это:

-Darguments="-DskipITs"
person David Gilks    schedule 24.09.2012

у вас слишком разные варианты, чтобы избежать и пропустить тесты с плагином выпуска

  • Первый - передать в качестве аргумента cli цель или этапы выпуска, указав -Darguments:

пример: mvn -X -Darguments="-Dmaven.javadoc.skip=true -Dmaven.test.skipTests=true -Dmaven.test.skip=true" -P release-mode release:prepare

-Второй - выполнить эти аргументы в вашем pom.xml в сборке следующим образом:

<plugin>    
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.maven.scm</groupId>
                        <artifactId>maven-scm-provider-gitexe</artifactId>
                        <version>1.9.4</version>
                    </dependency>
                </dependencies>
                <configuration>
                    <skip>true</skip>
                    <skipTests>true</skipTests>
                    <preparationGoals>clean validate</preparationGoals>
                    <arguments>-Dmaven.javadoc.skip=true -Dmaven.test.skipTests=true -Dmaven.test.skip=true</arguments>
                    <useReleaseProfile>false</useReleaseProfile>
                    <releaseProfiles>release-mode</releaseProfiles>
                    <tagNameFormat>TEST-@{project.version}</tagNameFormat>
                </configuration>
            </plugin>

Обратите внимание, что второй метод переопределяет первый.

Я рекомендовал вам сначала подготовить релиз для одного действия, а затем вы можете отредактировать файл release.properties в рабочем каталоге и посмотреть свойства exec.additionalArguments, если там есть ваши аргументы. Это будет выглядеть так: exec.additionalArguments=-Dmaven.javadoc.skip\=true -Dmaven.test.skipTests\=true -Dmaven.test.skip\=true -P release-mode.

После можно выполнить релиз.

person idriss Eliguene    schedule 07.06.2018

Используйте следующий аргумент, чтобы пропустить тест

-Darguments="-DskipTests"

or

или пропуск по умолчанию

 [...]
  <properties>
    <skipTests>true</skipTests>
  </properties>
  [...]
person Mfuon Leonard    schedule 28.06.2016
comment
Этот вопрос касается плагина выпуска Maven, так что это не цели Maven, которые будут использоваться. - person Jaap; 19.12.2016

Мне удалось избежать выполнения цели verify, просто добавив configuration preparationGoals к clean:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-release-plugin</artifactId>
  <version>2.5.3</version>
  <configuration>
    <preparationGoals>clean</preparationGoals> <!-- See here -->
  </configuration>
</plugin>
person Vincent C.    schedule 09.07.2021