how to make maven release plugin skip tests?
I have used the following in my pom.xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.3</version>
<configuration>
<tagNameFormat>v@{project.version}</tagNameFormat>
<arguments>-Dmaven.javadoc.skip=true -Dmaven.test.skipTests=true -Dmaven.test.skip=true</arguments>
</configuration>
</plugin>
This is one of the first hits in google for this problem and yet doesn't have the most likely explanation and solution, so here is my attempt.
I faced the same issue as the OP in running release:prepare
with -DskipTests
passed in via -Darguments
not getting recognized. After digging in, I noticed that a grandparent POM (parent of the parent) has the following config:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.2</version>
<configuration>
<arguments>-B</arguments>
</configuration>
</plugin>
It actually has more config, but I only show what is most relevant for this problem, which is the <arguments>-B</arguments>
. This is hardcoding the arguments
configuration parameter to -B
instead of letting it read the arguments
property. To get around, I added the below in the project pom and it started working:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<arguments>$(arguments)</arguments>
</configuration>
</plugin>
This worked for me. I wanted to both prepare and perform the release.
mvn clean -DskipTests -Darguments=-DskipTests release:prepare release:perform