Maven - Skip building test classes

后端 未结 5 1490
心在旅途
心在旅途 2021-01-30 19:36

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

mvn clean install -Dmaven.test.skip=true
相关标签:
5条回答
  • 2021-01-30 19:57

    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.

    0 讨论(0)
  • 2021-01-30 20:01

    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.

    0 讨论(0)
  • 2021-01-30 20:02

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

    mvn clean compile
    
    0 讨论(0)
  • 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.

    0 讨论(0)
  • 2021-01-30 20:16

    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 讨论(0)
提交回复
热议问题