How can I get maven-release-plugin to skip my tests?

MavenMaven Release-PluginMaven Surefire-Plugin

Maven Problem Overview


How can I get the maven-release-plugin to run without triggering the tests?

I have tried

-Dmaven.test.skip=true 

and

-DskipTests 

and

-DpreparationGoals=clean

...yet none work.

Yes, I know I shouldn't release if the tests don't pass, but I don't have control over making my coworkers write reliable tests.

Maven Solutions


Solution 1 - Maven

-Darguments="-DskipTests" is what you want, or explicitly configuring the forked executions in the pom.

Solution 2 - Maven

-Darguments="..." passes arguments to the forked maven process, but it is important to realise that there are two different switches being used here. The -DskipTests forces maven to not run any tests, but the tests are still compiled (this is important if you have any dependencies on a test-jar type). The -Dmaven.test.skip=true forces maven to not even compile the tests, which means that any test-jars will not be generated.

So, you must use -Darguments, but to skip tests running use only skipTests, to stop them compiling use maven.test.skip.

Solution 3 - Maven

If you just want to skip integration tests, this will do it:

-Darguments="-DskipITs"

Solution 4 - Maven

you have too differents choices to avoid and skip tests with the release plugin

  • The first is to pass as argument on cli to the release goal or phases by providing a -Darguments:

exemple: mvn -X -Darguments="-Dmaven.javadoc.skip=true -Dmaven.test.skipTests=true -Dmaven.test.skip=true" -P release-mode release:prepare

-The second is to perform thoses arguments on your pom.xml in the build like this:

<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>

Note that the second method override the first.

I recommanded you to prepare release first on a single action and then you can edit the release.properties file on the working directorie and look the exec.additionalArguments properties if your arguments are there. It will look like: exec.additionalArguments=-Dmaven.javadoc.skip\=true -Dmaven.test.skipTests\=true -Dmaven.test.skip\=true -P release-mode.

After you can perform the release.

Solution 5 - Maven

Use the following argument to skip test > -Darguments="-DskipTests"

or

alternatively skipping by default

 [...]
  <properties>
    <skipTests>true</skipTests>
  </properties>
  [...]

Solution 6 - Maven

I have managed to avoid running the verify goal by simply adding the configuration preparationGoals to 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>

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionStevenView Question on Stackoverflow
Solution 1 - MavenbmarguliesView Answer on Stackoverflow
Solution 2 - MavenSoftware EngineerView Answer on Stackoverflow
Solution 3 - MavenDavid GilksView Answer on Stackoverflow
Solution 4 - Mavenidriss EligueneView Answer on Stackoverflow
Solution 5 - MavenMfuon LeonardView Answer on Stackoverflow
Solution 6 - MavenVincent C.View Answer on Stackoverflow