태그를 지정하는 동안 mvn release:prepare가 실패하는 이유는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/92258

문제

다중 프로젝트 pom을 사용하면 release:prepare를 실행하는 동안 오류가 발생합니다.제대로 실행되기 전의 프로젝트 설정과 모든 릴리스 단계에는 멋진 것이 없습니다.내가 얻는 오류는 다음과 같습니다.

    [INFO] ------------------------------------------------------------------------
    [ERROR] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    [INFO] Unable to tag SCM
    Provider message:
    The svn tag command failed.
    Command output:
    svn: Commit failed (details follow):
    svn: File '/repos/june/tags/foo-1.0.2/foo.bar.org/pom.xml' already exists

그것이 어디서 왔는지, 어떻게 우회할 수 있는지 아시나요?

(중복된 게시물 죄송합니다. 답변할 수 있는 질문으로 작성하지 않았기 때문에 첫 번째 게시물은 닫혔습니다.이제 괜찮기를 바랍니다.)

편집하다
Maven 릴리스 플러그인은 버전 처리 자체를 관리합니다.따라서 Subversion 저장소에서 경로를 확인할 때 경로가 아직 존재하지 않습니다.

편집 2
@벤:서버 버전은 모르지만 클라이언트도 1.5.2입니다.

도움이 되었습니까?

해결책

이 문제는 최신 버전의 메이븐 릴리스 플러그인.이를 POM에 추가하여 가져옵니다.

<build>
  <pluginManagement>
    <plugins>
      <plugin>
        <artifactId>maven-release-plugin</artifactId>
        <version>2.0-beta-9</version>
      </plugin>
    </plugins>
  </pluginManagement>
</build>

해결된 문제는 MRELEASE-375.

다른 팁

버전 번호를 늘리지 않았기 때문입니다. 1.0.2가 이미 Subversion 저장소에 존재합니다.

버전을 높이거나 저장소에서 /repos/june/tags/foo-1.0.2 태그를 제거하세요.

Roland, 아직 이 문제를 보지 못했다면 이 문제에 대한 John Smart의 블로그 게시물을 살펴보세요.그가 제안한 스크립트는 우아하지 않지만 문제를 해결합니다.

http://weblogs.java.net/blog/johnsmart/archive/2008/12/subversion_mave.html

다른 해결책은 Git을 사용하는 것입니다.(나 == 현재 Maven과 Git에 대해 글을 쓰고 있다)

잠재적으로 유용한 링크:

http://weblogs.java.net/blog/johnsmart/archive/2008/12/subversion_mave.html (이전에 언급)

http://jira.codehaus.org/browse/MRELEASE-427 (진짜 버그?)

http://jira.codehaus.org/browse/SCM-406 (관련 버그)

http://olafsblog.sysbsb.de/?p=73 (최신이고 아마도 더 유용한 게시물)

내가 아는 한 그것은 Subversion 1.5의 버그이며 Maven과 직접적인 관련이 없습니다.그러나 해결 방법은 로컬 svn 저장소를 업데이트하고 release:prepare 목표를 다시 실행하는 것입니다.

나는 이것으로 꽤 오랫동안 싸웠습니다.SVN 1.5.1+에서는 작업 복사본에서 바로 태그 커밋을 중단하는 점이 다릅니다. 이것이 바로 Maven이 수행하는 작업입니다.누가 문제를 해결할 책임이 있는지에 대해 여전히 많은 비난이 있습니다.

'svn update'를 수행하고 릴리스 명령을 다시 실행할 수 있지만 release:branch를 수행하는 경우 릴리스 플러그인이 POM 파일을 이전 상태로 되돌리지 못하게 됩니다.

내가 아는 가장 좋은 해결 방법은 Subversion 1.5.0으로 돌아가는 것입니다.

이것은 결정된 최신 릴리스 플러그인 릴리스인 2.0-beta-9

svn이 설치되지 않은 서버에서 빌드 문제가 발생하여 이 게시물을 보게 되었습니다.

이것이 도움이 되었습니다:Subversion을 사용하는 Jenkins

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top