2013-10-07 5 views
0

나는 versions-maven-plugin의 버전 2.1을 사용하고 있습니다. 메이븐 버젼 플러그인을 만드는 방법 멀티 모듈 프로젝트에서 업데이트 - 부모 목표 작업하기

+-- JavaProjects 
    +-- customs-deployment-support 
     +-- pom.xml 
    +-- pom.xml  (a.k.a. base-parentpom) 
+-- Projects 
    +-- customs-template 
     +-- pom.xml 
    +-- customs-ear-template 
     +-- pom.xml 
    +-- customs-rpm-template 
     +-- pom.xml 
    +-- customs-site-template 
     +-- pom.xml 
    +-- pom.xml  (a.k.a. customs-parentpom) 

지금 위의 customs-template 프로젝트에 대한 <parent />customs-deployment-support입니다 :

나는 다음과 같은 소스 트리를 가지고있다. 다른 customs-*-template 프로젝트의 경우 <parent />base-parentpom입니다.

참고 : customs-parentpom 그냥 "애그리 게이터 (aggregator)"이며, 세관 모듈의 실제 부모가 아니라 그것의 <modules /> 섹션에 <module />customs-* 프로젝트를 선언한다.

SNAPSHOT 버전의 경우이 기능은 훌륭합니다.

이제 각 이슈의 버전 서명이 x.x.x_yyyyMMddhhmm_nn 인 곳인 versioned 아티팩트로 이동하고 싶습니다.

그래서, 지금은 versions-maven-plugincustoms-parentpom가 (또는 "어 그리 게이터는"pom.xml) I가 젠킨스를 사용

빌드를 구축하기 위해 사용하고 싶다. 나는 그것이 최신 업스트림 유물 (즉, base-parentpomcustoms-parentpom) 넥서스에서 사용할 수를 찾으려면

mvn versions:update-parent 

: 그래서 같은 각 세관 프로젝트의 <parent /> 섹션 내 버전을 소형 어선하기위한 사전 단계를 구성합니다.

하지만 실패 ...

[ERROR] The build could not read 4 projects -> [Help 1] 
[ERROR] 
[ERROR] The project com.etse:etse-customs-template:3.1.0-SNAPSHOT (/var/lib/jenkins/jobs/ETSE-trunk-AllCustoms/workspace/customs-template/pom.xml) has 1 error 
[ERROR]  Non-resolvable parent POM: Failure to find com.etse:etse-customs-deployment-support:pom:3.1.0-SNAPSHOT in http://repository.jboss.org/nexus/content/groups/public-jboss/ was cached in the local repository, resolution will not be reattempted until the update interval of jboss-public-repository-group has elapsed or updates are forced and 'parent.relativePath' points at wrong local POM @ line 5, column 11 -> [Help 2] 
[ERROR] 
[ERROR] The project com.etse:etse-customs-ear-template:3.1.0-SNAPSHOT (/var/lib/jenkins/jobs/ETSE-trunk-AllCustoms/workspace/customs-ear-template/pom.xml) has 1 error 
[ERROR]  Non-resolvable parent POM: Failure to find com.etse:etse-parentpom:pom:3.1.0-SNAPSHOT in http://repository.jboss.org/nexus/content/groups/public-jboss/ was cached in the local repository, resolution will not be reattempted until the update interval of jboss-public-repository-group has elapsed or updates are forced and 'parent.relativePath' points at wrong local POM @ line 5, column 10 -> [Help 2] 
[ERROR] 
[ERROR] The project com.etse:etse-customs-rpm-template:3.1.0-SNAPSHOT (/var/lib/jenkins/jobs/ETSE-trunk-AllCustoms/workspace/customs-rpm-template/pom.xml) has 1 error 
[ERROR]  Non-resolvable parent POM: Failure to find com.etse:etse-parentpom:pom:3.1.0-SNAPSHOT in http://repository.jboss.org/nexus/content/groups/public-jboss/ was cached in the local repository, resolution will not be reattempted until the update interval of jboss-public-repository-group has elapsed or updates are forced and 'parent.relativePath' points at wrong local POM @ line 5, column 10 -> [Help 2] 
[ERROR] 
[ERROR] The project com.etse:etse-customs-site-template:3.1.0-SNAPSHOT (/var/lib/jenkins/jobs/ETSE-trunk-AllCustoms/workspace/customs-site-template/pom.xml) has 1 error 
[ERROR]  Non-resolvable parent POM: Failure to find com.etse:etse-parentpom:pom:3.1.0-SNAPSHOT in http://repository.jboss.org/nexus/content/groups/public-jboss/ was cached in the local repository, resolution will not be reattempted until the update interval of jboss-public-repository-group has elapsed or updates are forced and 'parent.relativePath' points at wrong local POM @ line 5, column 10 -> [Help 2] 
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 
[ERROR] Re-run Maven using the -X switch to enable full debug logging. 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles: 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException 
[ERROR] [Help 2] http://cwiki.apache.org/confluence/display/MAVEN/UnresolvableModelException 

내가 젠킨스는 위의 경우에 SNAPSHOT 버전 이슈를 생성하고 싶지는 않을 것을 고려하십시오. SNAPSHOT은 로컬 .m2 저장소에서 사용할 수 없다는 것을 알고 있습니다. 버전 플러그인이 올바르게 해결하려면 (정말로) 플러그인이 필요합니까?

내가 뭘 잘못하고 있니? 내가하려는 일을 하는게 가능 할까? 그게 도움이된다면 pom.xml 파일을 기꺼이 공유 할 수 있습니다.

답변

0

이것은 내 오해였습니다. 다중 모듈 설정을 사용하는 경우 소스를 체크 아웃 할 때 모듈을 빌드하려면 경로를 parent (<relativePath /> 통해)까지 추적 할 수 있어야합니다.

모듈을 체크 아웃하고 있지만 부모는 체크 아웃하지 않았습니다. 따라서 non-resolvable parent POM 오류가 발생했습니다.

따라서 원자로가 그 부분을 수행하려면 어 그리 게이터 (및/또는 상위) pom.xml의 모든 모듈을 정의해야합니다.

그럼 당신은 당신이 프로젝트를 발표하는 상황을 처리 않았다 어떻게 그렇게

mvn clean install --projects <project1>,<project2> --amd 
+0

같은 하나의 (또는 복수) 모듈 (프로젝트)을 구축 할 수 있습니다 (예 : 세관 귀 템플릿, 수는 부모 가정 JavaProjects의 프로젝트 중 하나입니다.) 현재 JavaProjects 버전이 0.0이라고 가정합니다.4-SNAPSHOT 및 customs-ear-template에서 0.0.1 버전을 얻으 려한다면 버전을 사용하지 않을 것입니다 : update-parent는 0.0.1 릴리스의 Project에서 작동합니다 (0.0.3 artifact를 빌드하므로 0.0.1 릴리스 아티팩트 항아리/전쟁 등 파일을 만드는 것보다 customs-ear-template을 사용하는 것). http://stackoverflow.com/questions/25918593/interesting-maven-questions-pom-types-and-how-to-handle-maven-parents-uncl –