Walter White
Walter White

Reputation:

Maven - Skip building test classes

Is there a simple way to not build the test classes?

mvn clean install -Dmaven.test.skip=true

Upvotes: 90

Views: 73308

Answers (5)

Ioannis Sermetziadis
Ioannis Sermetziadis

Reputation: 797

I found a work-around in another question, which actually overrides a plugin execution by adding the following snippet in your pom.xml by default:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <executions>
        <execution>
          <id>default-testCompile</id>
          <phase>none</phase>
        </execution>
      </executions>
   </plugin>
  </plugins>
</build>

This seems to work but definitely does not disable phase but disables the default actions that a plugin defines at a specific phase.

Upvotes: 1

Daniel
Daniel

Reputation: 10235

According to the documentation on the Maven Surefire Plugin, -Dmaven.test.skip should skip both compilation and execution of the tests. By contrast, -DskipTests just skips the test execution: the tests are still compiled.

Upvotes: 152

JimP
JimP

Reputation: 1076

I'm not an expert at maven, but what I use in my current project is:

mvn clean install -DskipTests=true

Depending on your use case using:

mvn compile -DskipTests=true

might work for you too.

Upvotes: 8

johntrepreneur
johntrepreneur

Reputation: 4694

Just to be explicitly clear:

skipTests will compile anything in the <testSourceDirectory>, but will not execute them.

maven.test.skip will NOT compile any tests, but WILL execute any compiled tests that made their way into the <testOutputDirectory>.

So the behavior of the above 2 is opposite. Just wanted to point out that maven.test.skip doesn't skip compilation AND execution if test files are unpacked/copied/etc. into <testOutputDirectory>.

Also, depending on which version of Maven your using, there's also maven.test.skip.exec=true which additionally skips test execution similar to skipTests.

Upvotes: 21

Pascal Thivent
Pascal Thivent

Reputation: 570285

Run a phase that doesn't include test-compile, for example compile.

mvn clean compile

Upvotes: 10

Related Questions