[maven] maven-release-plugin으로 테스트를 건너 뛰려면 어떻게해야합니까?

테스트를 트리거하지 않고 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


답변