Maven skip tests

maven

Solution

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.

Problem

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.

Original source

Related problems