메이븐 스킵 테스트
Maven 2.2.1을 사용하고 있으며 프로젝트를 빌드하기 위해이 명령을 사용했습니다.
mvn clean install -Dmaven.test.skip=true
그러나 빌드가 아티팩트 중 하나를 찾을 수 없다고 말하지 못했습니다. 그러나 내가 사용했을 때 :
mvn clean install -DskipTests
모든 것이 잘 작동했습니다. 지금까지 나는이 두 명령이 동일하다고 생각했습니다. 그러나,
그 제안하는 것
-Dmaven.test.skip=true
또한 테스트 케이스를 컴파일 건너 뜁니다.그러나 여전히 한 명령이 작동하고 다른 명령이 작동하지 않는 이유를 설명하지 못했습니다. 누군가 나에게 이것을 설명해 주시면 감사하겠습니다.
언급했듯이
-Dmaven.test.skip=true
테스트 컴파일을 건너 뜁니다. 더 나아가서는 테스트 아티팩트 빌드를 건너 뜁니다. 대규모 프로젝트의 일반적인 관행은 테스트 유틸리티와 기본 클래스를 동일한 프로젝트의 모듈간에 공유하는 것입니다.이것은 모듈
test-jar
에 이전에 빌드 된 모듈이 필요하도록함으로써 달성됩니다 .
<dependency>
<groupId>org.myproject.mygroup</groupId>
<artifactId>common</artifactId>
<version>1.0</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
경우
-Dmaven.test.skip=true
(또는 간단히가
-Dmaven.test.skip
) 지정의
test-jar
의 내장되지 않으며, 그들에 의존하는 모듈은 빌드를 실패합니다.반대로
-DskipTests
Maven은 테스트를
실행
하지 않지만 테스트를 컴파일하고 테스트 jar을 빌드하여 후속 모듈에서 사용할 수 있도록합니다.
패키지를 빌드하기 위해 테스트와 상호 의존했습니다.다음 명령은 목표를 달성하기 위해 테스트 아티팩트의 필요성을 무시합니다.
mvn -DskipTests=true package
나는 당신에게 동일한 문제를 일으키는 예를 줄 수는 있지만 질문에 대한 답을 줄 수는 없습니다. (또한이 예에서는 Maven 2에 적용되지 않을 수있는 Maven 3 지식을 사용하고 있습니다.)멀티 모듈 maven 프로젝트 (모듈 포함
A
및
B
에
B
따라 다름) 에서 에서 테스트 종속성 을
A
추가 할 수도 있습니다 .
A
B
이 종속성은 다음과 같습니다.
<dependency>
<groupId>com.foo</groupId>
<artifactId>A</artifactId>
<type>test-jar</type> <!-- I'm not sure if there is such a thing in Maven 2, but there is definitely a way to achieve such dependency in Maven 2. -->
<scope>test</scope>
</dependency>
(자세한 내용은
https://maven.apache.org/guides/mini/guide-attached-tests.html
을 참조하십시오. )
프로젝트
A
는
tests
테스트 클래스 및 테스트 리소스가 있는 분류기 로 보조 아티팩트를 생성합니다 .로 프로젝트를 빌드
-Dmaven.test.skip=true
하면 로컬 리포지토리 또는 외부 리포지토리에
테스트 아티팩트
가없는 한 종속성 해결 오류가 발생 합니다. 테스트 클래스가 컴파일되지 않았거나
tests
아티팩트가 생성 되지 않았기 때문입니다 .
당신이 빌드를 실행하는 경우,
-DskipTests
귀하의
tests
유물 (테스트가 실행되지 않습니다하지만) 생산되고 의존성이 해결 될 것입니다.
각 매개 변수에는 차이가 있습니다.
- -DskipTests는 실행중인 테스트 단계를 건너 뜁니다. 즉,이 프로세스가 끝나면 테스트가 컴파일됩니다.
- -Dmaven.test.skip = true 테스트 컴파일 및 실행 단계를 건너 뜁니다.
매개 변수 -Dmaven.test.skip = true 컴파일을 건너 뛰면 테스트 아티팩트가 없습니다.자세한 내용은 surfire 설명서를 참조하십시오.
http://maven.apache.org/plugins-archives/maven-surefire-plugin-2.12.4/examples/skipping-test.html
maven을 새로 설치하는 동안 테스트 사례를 건너 뛰려면 다음 명령에서 -DskipTests paramater를 사용했습니다.
mvn clean install -DskipTests
터미널 창으로
maven 컴파일 중에 pom.xml에 다음 플러그인을 추가하여 테스트 실행을 건너 뛸 수 있습니다
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20.1</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
surefire-plugin 버전에 따라 -DskipTests 매개 변수가 작동하지 않을 수 있습니다.
"-DskipTests"대신 "-Dmaven.test.skip.exec"를 사용할 수 있습니다.
출처 :
참고 URL :
https://stackoverflow.com/questions/24727536/maven-skip-tests
'programing' 카테고리의 다른 글
Python 하위 프로세스 통신 방법을 사용할 때 종료 코드를 얻는 방법은 무엇입니까? (0) | 2020.05.24 |
---|---|
이력서가 아닌 앱이 다시 시작됨 (0) | 2020.05.24 |
O (nlogn) Algorithm-이진 문자열 내에서 균등 한 간격으로 3 개 찾기 (0) | 2020.05.23 |
여러 열에 대한 DISTINCT 계산 (0) | 2020.05.23 |
자동 레이아웃을 사용하여 UIScrollview에서 제약 조건을 설정하려면 어떻게해야합니까? (0) | 2020.05.23 |