What's the difference between -DskipTests and -Dmaven.test.skip=true

JavaMavenHive

Java Problem Overview


I was trying to build hive-0.13.

When using -Dmaven.test.skip=true, it will not build the test jars but it will check test dependency.

When using -DskipTests, it will not build the test jars and also not check test dependency.

What's the difference between -DskipTests and -Dmaven.test.skip=true?

Java Solutions


Solution 1 - Java

Maven docs:

-DskipTests compiles the tests, but skips running them

-Dmaven.test.skip=true skips compiling the tests and does not run them

Also this one might be important

> maven.test.skip is honored by Surefire, Failsafe and the Compiler > Plugin

Solution 2 - Java

There is a third, related option described here: https://stackoverflow.com/a/21933970/3169948

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

So the complete set of test options for Maven would be:

  • -DskipTests ==> the tests get compiled, but not executed.
  • -Dmaven.test.skip.exec=true ==> the tests get compiled, but not executed (exactly the same as -DskipTests).
  • -Dmaven.test.skip=true ==> doesn't compile or execute the tests.

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
QuestionStanley ShiView Question on Stackoverflow
Solution 1 - JavaKamil KłysView Answer on Stackoverflow
Solution 2 - JavaCorbaTheGeekView Answer on Stackoverflow