기타 가까운 몇 가지 관련 정보 ...하지만 시가가 있습니다.
Maven이 릴리스를 실행하면 릴리스 프로세스에 특별한 단계가 없습니다. 원하는 작업을 포함하도록 구성된 프로필을 추가하는 것입니다.
<profiles>
<profile>
<id>release-preflight-checks</id>
<build>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<executions>
<execution>
<id>release-preflight-checks</id>
<goals>
<goal>test</goal>
</goals>
<configuration>
.. include your test here
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
그런 다음 당신은, 당신은 단지 release:prepare
년대 포크 실행 중에이 프로필이 활성화되어야한다고 메이븐을 말할 필요가 드디어 프리 플라이트 검사에게 다음
<build>
<plugins>
...
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
.. exclude your test here
</configuration>
</plugin>
...
</plugins>
</build>
그리고 실행하지 기본적으로 확실한 구성해야
<build>
<plugins>
...
<plugin>
<artifactId>maven-release-plugin</artifactId>
<configuration>
...
<preparationGoals>clean verify -P+release-preflight-checks</preparationGoals>
...
</configuration>
</plugin>
...
</plugins>
</build>
참고 : 당신이에 프로파일을 추가하도록 프로파일 이름 앞에 +
을 가지고 매우 중요합니다 활성 프로필 목록을 사용하지 않으면 release:prepare
단계에서 빌드가 릴리스 프로필이 활성 상태로 작동하는지 유효성을 검사하지 않으며 이후에 release:perform
을 실패 할 수 있습니다.
참고 : 덜 복잡한 경로는 사용중인 릴리스 프로필에 확실한 구성을 넣는 것입니다 (기본값은 release
이지만 기본적으로 상위 pom을 통해 변경할 수 있으므로 오류가 발생하기 쉽습니다). 예를 들어, 프로젝트를 중앙으로 푸시하기로 결정하면, sonatype-oss-parent는 릴리스 프로파일을 sonatype-release
으로 변경합니다. 그러면 pom이 일치하도록 변경할 때까지 테스트가 실행되지 않으므로 빌드가 실패한 것을 볼 수 없습니다 새로운 릴리스 프로파일의 ID ... -P+release-preflight-checks
을 사용하면 프로파일이 이고 항상이 활성화되어 release:prepare
에 대해 활성화되고 요청자의 원래 요구 사항을 완전히 충족시킬 수 있습니다. 즉 release:prepare
에 대해서만 실행되며 실행되지 않습니다. release:perform
실행이 릴리스 프로파일에 추가 된 경우)
나는 올바른 방향으로 가고 있었다고 생각합니다! :) 나는 이것을 만들기 시작했으나 그것을 완성하는 방법이나 그것이 효과가 있는지 알지 못했습니다. 이걸 주셔서 고마워요 !!! – Steve
이 답변은 쓰여지지 않습니다.더 자세한 설명은 내 대답을 참조하십시오. TL, DR에는 '준비 준비'단계가 없습니다. –
@StephenConnolly Hmmmm. 릴리즈 준비 단계가 없습니다. 나는'release-prepare'가 옳지 않다는 것을 알았지 만 (위의 면책 조항에 유의하십시오), 릴리즈 할 때 독특한 단계가있었습니다. 나는 그렇지 않다. –