2012-03-12 3 views
2

우리는 maven-release-plugin을 사용하여 우리의 maven 컴포넌트를 저장소 (repository)에 공개합니다. 그러나 이러한 구성 요소 중 일부는 일부 종속성의 범위를 사용합니다. 일부 의존성이 자주 릴리스되기 때문에 (스냅 샷은 옵션이 아님)릴리즈 플러그인으로 릴리즈하는 동안 범위를 확인하는 방법

릴리스 플러그인을 사용하면 범위가 scm으로 검사되고 우리의 maven repo에 배치됩니다. 이것은 maven 저장소에있는 해결되지 않은 pom 파일이 한 빌드에서 다른 빌드로 다른 빌드 변경을 할 수 있었기 때문에 의미가 없습니다.

릴리스 : prepare-with-pom을 사용해 보았지만 scm (release-pom.xml)에 커밋 된 새로운 pom 파일을 만듭니다. 범위가있는 원래 크기는 여전히 repo에 배치됩니다.

또 다른 문제는 다음 개발 릴리스의 범위를 유지하려는 것입니다. 그래서 우리의 머리/트렁크는 해결되어서는 안됩니다.

나는 이것이 잘못된 길로 가고 있다는 느낌을 가지고 있습니다.

누구든지 문제를 해결할 수 있습니까? 이를 수행 할 다른 방법이 있다면 우리는 귀하의 제안에 감사드립니다.

+0

질문 : 스냅 샷에 옵션이없는 이유는 무엇입니까? 특히 종속성의 경우, 그러한 상황을 위해 의도 된 것입니다. – khmarbaise

+0

Maven에서 모듈을 생성하지 않기 때문에 스냅 샷은 옵션이 아닙니다. 일반적으로 스냅 샷을 사용하는 것이이 항목의 범위를 벗어나는 공식 테스트가있는 시스템의 경우 좋은 생각입니다. –

답변

1

두 개의 알려진 maven 릴리스 플러그인 버그를 발견했습니다. 다음과 같은 버그 리포트를 참조하십시오 :이이 예정되어

버전 2.2.3 또는 받는다는 출시 - 플러그인

편집 등의 2.3 릴리스로 게시 된 댓글에 대한 응답 : 나는이 버그가 내 문제를 해결하는 이유가 명확하지 않다는 것에 동의합니다. 나는 정교하게 노력할 것이다.

해결 된 pom 파일을 사용하여 배포 된 플러그인을 가져 와서 배포하려면 먼저 release : prepare-with-pom을 사용한 다음 release : perform을 사용해야합니다. 해결 된 pom 파일을 배포하려면 config의 pomFileName을 release-pom.xml로 설정해야합니다. 그렇지 않으면 확인되지 않은 pom.xml을 배포합니다. 범위가있는 배포 된 pom 파일은 좋은 생각이 아닙니다. 이것이 618이 필요한 이유입니다.

release-pom.xml이 태그에서만 체크인되기 때문에 727이 필요합니다. 릴리스를 수행 할 때 : 대상 디렉토리에서 태그를 체크 아웃하십시오. 왜냐하면 플러그인이 모듈 루트 디렉토리에있는 release-pom.xml을 찾고 버그를 일으키기 때문입니다. 이것은 pomFileName 설정없이 잘못 될 수도 있지만 가능성은 낮습니다.

범위는 일반적으로 버그이며 Maven은 기본적으로 확인 된 pom 파일을 배포하지 않기 때문에 일반적으로 Maven에서는 좋지 않습니다. Maven이 항상 해결 된 pom 파일 범위를 배포하면 좋은 생각입니다.

+0

이 버그가 귀하의 질문과 관련이 있다고 생각하는 이유는 분명하지 않습니다. 대답을 넓힐 수 있습니까? –

+0

도 618과 727 모두 위에 설명 된 문제와 관련이 없습니다. – khmarbaise

+0

위의 문제는 위의 설명과 같이 나쁜 실행 및 결과와 함께 버전 범위를 사용하여 발생합니다. – khmarbaise

관련 문제