[maven-2] Maven-빌드 테스트 클래스 건너 뛰기

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

mvn clean install -Dmaven.test.skip=true



답변

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


답변

명확하게하기 위해서 :

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

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

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

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


답변

예를 들어를 포함하지 않는 단계 를 실행합니다 .test-compilecompile

mvn clean compile


답변

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

mvn clean install -DskipTests=true

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

mvn compile -DskipTests=true

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


답변

기본적으로 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>

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


답변