开发者

Maven - Skip building test classes

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

mvn clean install开发者_运维知识库 -Dmaven.test.skip=true


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.


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.


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

mvn clean compile


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.


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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜