2012-07-03 5 views
3

내 SCM 연결 정보 :메이븐 릴리스 플러그인 : 준비 목표

<scm> 
    <connection>scm:svn:https://repo/project/trunk</connection> 
    <developerConnection>scm:svn:https://repo/project/trunk</developerConnection> 
</scm> 

내 출시 플러그인 구성 :

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-release-plugin</artifactId> 
    <version>2.3.2</version> 
    <configuration> 
     <tag>RC</tag> 
     <autoVersionSubmodules>true</autoVersionSubmodules> 
    </configuration> 
</plugin> 
이제

내가 mvn release:prepare을 실행하는 대신 투입 내 태그가 붙은 자료가 tags/RC인데, tags/RC/trunk입니다. trunkRC에 추가하는 것을 중단하려면 어떻게해야합니까?

+0

태그를 구성 했습니까? SVN에서 기본 레이아웃을 사용하는 경우이를 구성 할 필요가 없습니다. – khmarbaise

+0

태그를 구성하지 않으면 릴리스를 준비 할 때 태그를 지정하는 것은 개발자가 결정합니다. 우리는 그것을 원하지 않는다. 현재 릴리스가 태그로 지정 되기만하면됩니다. 즉, 제작 준비 상태입니다. –

+0

그건 잘못되었습니다. 태그는 artifactId와 버전을 기준으로 기본적으로 만들어집니다. 릴리즈 플러그인은 당신에게 물어볼 것이지만 기본값을 받아 들일 수는 있지만 명령 줄에 -B를 주면 사용자 상호 작용없이 자동으로 작업을 수행하지만 기본값 (버전 증가 등)을 사용합니다. – khmarbaise

답변

5

브라이언, 당신은 메이븐의 불완전한 release:rollback 기능의 피해자 일 수 있습니다. 내 question on StackOverflow과 그에 대한 답변을 참조하십시오. 태그가 이미 존재하는 경우 Subversion (Maven이 아님)은 내부에 기존 태그를 복사하려고한다고 생각합니다. 태그를 삭제하면 한 번 작동합니다. 다시 시도하면 RC/trunk이 표시됩니다. 다시 시도하면 Subversion에서 오류가 발생합니다.

해결 방법은 복사하기 전에 svn delete 태그입니다. release:perform 동안 Maven에서 성공적으로 수행합니다. deploy 단계에 몇 개의 플러그인을 바인딩합니다. 기본적으로

:

  • 고유 한 이름으로 태그를 생성, release:prepare이 일을 보자.
  • 바인드 org.codehaus.mojo:exec-maven-plugin:execdeployrelease:perform 동안 실행됩니다. svn delete <path to RC tag>을 호출하도록 구성하십시오.
  • Bind maven-scm-plugin:branch to deploy Maven의 SCM 플러그인을 사용하여 태그를 새로 만들려면

이것은 우리에게 유용하며 참조 용으로 고유 한 태그를 추가한다는 이점이 있습니다. 최악의 경우이 태그를 무시할 수 있습니다.

+0

정답 (예 : SVN에 이미있는 출시 태그)이 맞는지 확인할 수 있습니다. – vegemite4me

관련 문제