Maven-빌드 테스트 클래스 건너 뛰기


80

테스트 클래스를 빌드하지 않는 간단한 방법이 있습니까?

mvn clean install -Dmaven.test.skip=true

3
컴파일을 건너 뛰거나 실행을 건너 뛰시겠습니까?
Bozho 2010

테스트 클래스를 컴파일하지 않고 부두를 운영해야합니다.

답변:


134

에 따르면 문서 메이븐 확실한 플러그인에, -Dmaven.test.skip 해야 컴파일 및 테스트의 실행을 모두 건너 뜁니다. 대조적으로 -DskipTests테스트 실행을 건너 뜁니다 . 테스트는 여전히 컴파일됩니다.


28
+1하지만 이름이 싫습니다. 테스트 실행 을 건너 뛰고 테스트 컴파일과 실행을 건너 skipTests뛰는 이유 는 나에게 완전히 분명하지 않습니다 . 나는 항상 어떤 것이 어떤 것인지 찾아봐야합니다. maven.text.skip
Joachim Sauer

18

명확하게하기 위해서 :

skipTests 에서 모든 것을 컴파일<testSourceDirectory> 하지만 실행하지는 않습니다 .

maven.test.skip합니다 컴파일하지 어떤 테스트를하지만, 실행합니다 에 그들의 방법을 만든 컴파일 된 테스트를 <testOutputDirectory>.

따라서 위 2의 동작은 반대입니다. maven.test.skip테스트 파일이 압축 해제 / 복사되는 경우 컴파일 및 실행을 건너 뛰지 않는다는 점을 지적하고 싶었습니다 . 로 <testOutputDirectory>.

또한 사용하는 Maven 버전에 따라 skipTests와 유사한 테스트 실행maven.test.skip.exec=true추가로 건너 뛰는 것도 있습니다.


3
불행히도 적어도 maven 3.0.5 및 maven-compiler-plugin 3.5.1에서는 사실이 아닙니다. 테스트를 포함하는 모든 프로젝트에서 테스트 할 수 있습니다 : 테스트 mvn clean package -DskipTests=true && mvn test -Dmaven.test.skip=true를 컴파일하지만 (첫 번째 패키지 실행으로 인해) 두 번째 명령에서 실행하지 않습니다. 표준 디렉토리를 가정하면 target/test-classes나중에 모든 테스트가 포함되지만 실행되지는 않았습니다.
David Georg Reichelt

이것은 정답이며 그대로 받아 들여 져야합니다
Artem


8

나는 maven의 전문가는 아니지만 현재 프로젝트에서 사용하는 것은 다음과 같습니다.

mvn clean install -DskipTests=true

사용 사례에 따라 다음을 사용합니다.

mvn compile -DskipTests=true

당신에게도 도움이 될 것입니다.


0

기본적으로 pom.xml에 다음 코드 조각을 추가하여 실제로 플러그인 실행을 재정의하는 다른 질문 에서 해결 방법을 찾았습니다 .

<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>

이것은 작동하는 것처럼 보이지만 확실히 단계를 비활성화하지는 않지만 플러그인이 특정 단계에서 정의하는 기본 작업을 비활성화합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.