Maven skip tests
I am using Maven 2.2.1 and to build my project I used this command
mvn clean install -Dmaven.test.skip=true
However, the build failed saying it couldn't find one of the artifact. However, when I used:
mvn clean install -DskipTests
everything worked fine.
So far I have been thinking that these 2 commands are equivalent. However, this link seems to suggest that -Dmaven.test.skip=true
also skips compiling the test cases.
However, that still didn't explain to me why one command is working and another is not. Will be thankful if anyone please explain this to me.
As you noted, -Dmaven.test.skip=true
skips compiling the tests. More to the point, it skips building the test artifacts. A common practice for large projects is to have testing utilities and base classes shared among modules in the same project.
This is accomplished by having a module require a test-jar
of a previously built module:
<dependency>
<groupId>org.myproject.mygroup</groupId>
<artifactId>common</artifactId>
<version>1.0</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
If -Dmaven.test.skip=true
(or simply -Dmaven.test.skip
) is specified, the test-jar
s aren't built, and any module that relies on them will fail its build.
In contrast, when you use -DskipTests
, Maven does not run the tests, but it does compile them and build the test-jar, making it available for the subsequent modules.
I had some inter-dependency with the tests in order to build the package.
The following command manage to override the need for the test artifact in order to complete the goal:
mvn -DskipTests=true package
There is a difference between each parameter.
-
The
-DskipTests
skip running tests phase, it means at the end of this process you will have your tests compiled. -
The
-Dmaven.test.skip=true
skip compiling and running tests phase.
As the parameter -Dmaven.test.skip=true
skip compiling you don't have the tests artifact.
For more information just read the surfire documentation: http://maven.apache.org/plugins-archives/maven-surefire-plugin-2.12.4/examples/skipping-test.html
To skip the test case during maven clean install i used -DskipTests paramater in following command
mvn clean install -DskipTests
into terminal window