2013-04-18 5 views
3

여러 모듈이있는 maven 다중 모듈 프로젝트가 있습니다. 모두 mvn install (테스트 포함)을 모두 통과 한 경우에만 (mvn deploy) 배포하고 싶습니다.모든 모듈이 성공적으로 빌드 된 경우에만 Maven 배포 멀티 모듈 프로젝트

현재 프로젝트에서 mvn install을 실행합니다. 모든 모듈이 통과하면 배포를 수행하기 위해 mvn deploy을 실행합니다. 내가 보는 문제는 mvn을 두 번 호출하는 시간 낭비입니다 (두 번째 테스트를 건너 뛰더라도).

누구에게도 아이디어가 있습니까?


편집 : 난 당신 받는다는 설정과 저장소 관리자로 Artifactorymaven-artifactory-plugin를 사용하면 mvn deploy 명령에 원자 배포 동작을 추가 할 것을 배웠습니다. Artifactory 문서의 Build Integration 섹션을 참조하십시오.

[공개 - JFrog와 관련이 있습니다. Artifactory creator.]

+0

당신이 ** MVN의 배포를 사용하려 적이 : – khmarbaise

+0

mvn을 두 번 호출해야합니다. 원샷 솔루션을 원한다면 (존재하는 경우) –

+1

이 질문보기 http://stackoverflow.com/questions/18192686/maven-multi-module-deploy-to-repository-only-after-successful-unit-tests – Dmitry

답변

3

이것은 약간 까다 롭습니다. Maven은 빌드 라이프 사이클을 수행 할 때 원자가되지 않습니다. 따라서 깨진 아티팩트 집합이 저장소에 저장 될 수 있습니다.

내가 아는 한 가지 해결책은 Nexus Pro : http://www.sonatype.com/Products/Nexus-Professional/Features입니다. 빌드를 홍보하거나 특정 리포지토리를 준비로 지정할 수 있습니다. 따라서 검증 된 버전 만 사용되도록 승격됩니다. 어쩌면 인공물은 비슷한 것을 가지고 있습니다 - 나는 단지 모른다.

해결책이 너무 비싸면 이미 업로드 된 곳의 아티팩트를 제거하기 위해 정리 빌드 또는 프로필을 만들어야 할 것입니다. 내 첫 번째 추측은 프록시 원격 API를 사용하기 위해 Maven 플러그인을 작성하거나 아마도 maven 기능이 이미 충분할 것입니다. 하지만 배포 이후 meta-data xml 파일을 업데이트하기 때문에 삭제가 있다고 생각하지 않습니다. 대신 ** 배포 : http://maven.apache.org/plugins/maven-deploy-plugin/deploy-mojo.html

4

은 메이븐 배포 플러그인의 deployAtEnd 매개 변수를 살펴 보자?
+0

시도해 보았습니다. 그것은 (mvn deploy -DdeployAtEnd = true) 차이를 만들지 않았습니다. 특별한 구성이 필요합니까? maven 3.0.4를 사용합니다 ... –

+1

옵션이 2.8의 배포 플러그인에 추가되었는데 이전 버전을 사용했을 가능성이 있습니까? – wemu