2011-02-14 3 views
4

여러 프로젝트가있는 플랫 프로젝트 구조가 있습니다. 소스 코드 관리를 위해 내부 저장소 및 SVN에 Nexus를 사용하고 있습니다. 내 프로젝트의 SNAPSHOT 빌드를 배포 할 수 있습니다. 내 부모 POM에서maven release : 릴리스 버전으로 프로젝트를 배포하지 마십시오.

은 내가

org.apache.maven.plugins 플러그인 받는다는 자료를 추가 한 받는다는 출시 - 플러그인 2.1

및 배포 정보

개봉 http : // localhost : 8081/nexus/content/repositories/releases ,210 스냅 샷 내부 스냅 샷 에 http : // localhost를 : 8081/넥서스/컨텐츠/저장소/스냅 샷 나는 MVN 릴리스를하고있는 중이 야

: 준비합니다. 릴리스 버전의 아티팩트가 repo에 배포되지 않습니다. 따라서 프로젝트 A에 프로젝트 B에 대한 의존성이있는 경우 프로젝트 A는 릴리스 버전으로 B의 아티팩트를 얻을 수 없습니다.

답변

9

릴리스 : prepare는 기본적으로 test를 컴파일하고 실행하려고하는 "clean"및 "verify"목표를 호출합니다. 따라서 원격 리포지토리에 배포되거나 로컬 리포지토리에 설치되는 것은 없습니다. 새로운 릴리스 버전을 사용하는 다중 모듈 프로젝트의 종속성을 처리하려면 릴리스 중에 로컬 저장소에 설치해야하는 것들이 필요합니다. prepareGoals 속성을 사용하여 기본 목표를 "clean"및 "install"로 변경하십시오.

<plugin> 
    <artifactId>maven-release-plugin</artifactId> 
    <version>2.1</version> 
    <configuration> 
     <preparationGoals>clean install</preparationGoals> 
    </configuration> 
</plugin> 

빌드하는 동안 필요한 목표를 추가 할 수 있습니다.

원격 저장소에 대한 실제 배포는 release : perform 목표에 의해 수행됩니다. [톱 텐 이유 메이븐 3로 이동하기 (HTTP : //www.sonatype이 트릭이 여전히 필요한 경우 사용하는 경우

로랑

+1

우리는 ** 메이븐 3.0 **, 우리가 여기 읽을 수 궁금해 수 .com/people/2011/02/top-ten-reasons-to-maven-3 /) : ** # 5. Maven 3의 인공물/의존성 해결이 개선되었습니다 ** ('매우 일반적인 증상 중 하나는 기본 "깨끗한 검증"대신 "깨끗한 설치"를 위해 maven-release-plugin의 준비 매개 변수를 구성해야한다는 것입니다. 반응기 내의 아티팩트를 정확하게 해결하여 예를 들어 준비 매개 변수의 기본값을 사용할 수 있습니다. '). –

관련 문제