테스트를 트리거하지 않고 maven-release-plugin을 실행하려면 어떻게해야합니까?
나는 시도했다
-Dmaven.test.skip=true
과
-DskipTests
과
-DpreparationGoals=clean
… 아직 작동하지 않습니다.
예, 테스트에 통과하지 못하면 릴리스하지 않아야한다는 것을 알고 있지만 동료가 신뢰할 수있는 테스트를 작성하도록 제어 할 수는 없습니다.
답변
-Darguments="-DskipTests"
원하는 것, 또는 pom에서 분기 실행을 명시 적으로 구성하는 것입니다.
답변
-Darguments="..."
갈래의 maven 프로세스에 인수를 전달하지만 여기에 두 개의 다른 스위치가 사용되고 있다는 것을 인식하는 것이 중요합니다. -DskipTests
(당신이 테스트 항아리 형에 대한 종속성이있는 경우이 중요하다) 힘은 어떤 테스트를 실행하지 받는다는하지만, 테스트는 여전히 컴파일됩니다. -Dmaven.test.skip=true
을 받는다는 힘 심지어 어떤 시험 병이 발생되지 않음을 의미 테스트를 컴파일되지.
따라서, 컴파일 사용을 중지 -Darguments
하려면 skipTests
, use only running running 테스트를 건너 뛰어야 합니다 maven.test.skip
.
답변
통합 테스트를 건너 뛰려면 다음과 같이하십시오.
-Darguments="-DskipITs"
답변
릴리스 플러그인으로 테스트를 피하고 건너 뛸 수있는 너무 다른 선택이 있습니다.
- 첫 번째는 -Darguments를 제공하여 cli에 대한 인수로 릴리스 목표 또는 단계에 전달하는 것입니다.
예 : mvn -X -Darguments="-Dmaven.javadoc.skip=true -Dmaven.test.skipTests=true -Dmaven.test.skip=true" -P release-mode release:prepare
두 번째는 빌드에서 pom.xml에 대한 인수를 다음과 같이 수행하는 것입니다.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-provider-gitexe</artifactId>
<version>1.9.4</version>
</dependency>
</dependencies>
<configuration>
<skip>true</skip>
<skipTests>true</skipTests>
<preparationGoals>clean validate</preparationGoals>
<arguments>-Dmaven.javadoc.skip=true -Dmaven.test.skipTests=true -Dmaven.test.skip=true</arguments>
<useReleaseProfile>false</useReleaseProfile>
<releaseProfiles>release-mode</releaseProfiles>
<tagNameFormat>TEST-@{project.version}</tagNameFormat>
</configuration>
</plugin>
두 번째 방법은 첫 번째 방법보다 우선합니다.
한 번의 작업으로 릴리스를 먼저 준비한 후 작업 디렉터에서 release.properties 파일을 편집하고 exec.additionalArguments
인수가있는 경우 특성을 볼 수 있도록 명령했습니다. 다음과 같습니다 exec.additionalArguments=-Dmaven.javadoc.skip\=true -Dmaven.test.skipTests\=true -Dmaven.test.skip\=true -P release-mode
..
릴리스를 수행 한 후
답변
전체 단위 테스트를 건너 뛰려면 인수를 사용합니다.
-Dmaven.test.skip = true
따라서 단위 테스트를 건너 뛰려면 해결됩니다.
mvn install -Dmaven.test.skip=true
mvn package -Dmaven.test.skip=true
또는 대안으로 maven-surefire-plugin에서 skipTests를 정의 할 수 있습니다
pom.xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
답변
어떤 메이븐 플러그인도 문자 그대로 테스트 컴파일 또는 실행을 트리거하지 않습니다. 하나 이상의 플러그인이 목표를 특정 단계로 제한했을 때 하나 이상의 플러그인의 실행을 트리거하는 것은 Maven 라이프 사이클 단계입니다.
따라서 테스트를 실행하지 않고 단일 플러그인 목표 만 실행하면 충분합니다.
mvn release:perform
또는 프로젝트 빌드 및 패키징과 결합하십시오.
mvn clean package release:perform