What is the difference between "-Dmaven.test.skip.exec" vs "-Dmaven.test.skip=true" and "-DskipTests"?

"maven.test.skip.exec=true" the tests get compiled, but not executed.

"maven.test.skip=true" doesn't compile or execute the tests.

"-DskipTests" is the same as "maven.test.skip.exec=true"


The system property -Dmaven.test.skip=true will do the following:

because maven.test.skip disables both running the tests and compiling the tests.

The system property -Dmaven.test.skip.exec is deprecated where you should use -DskipTests=true

Set this to "true" to skip running tests, but still compile them.


Please look at the reference : http://maven.apache.org/surefire/maven-surefire-plugin/examples/skipping-test.html

Extract :

Skipping Tests

To skip running the tests for a particular project, set the skipTests property to true.

<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.18.1</version>
        <configuration>
          <skipTests>true</skipTests>
        </configuration>
      </plugin>
    </plugins>
  </build>
  [...]
</project>

You can also skip the tests via the command line by executing the following command:

mvn install -DskipTests

If you absolutely must, you can also use the maven.test.skip property to skip compiling the tests. maven.test.skip is honored by Surefire, Failsafe and the Compiler Plugin.

mvn install -Dmaven.test.skip=true

Tags:

Maven