2012-06-14 2 views
4

maven/jenkins의 다중 모듈 프로젝트에 문제가 있습니다. 예를 들어 내 구조는 다음과 같다 : 예를 들어 ModuleA를 들어버전 플러그인을 사용하여 새 릴리스 이후에 maven 등록 정보를 업데이트하십시오.

---ProjectA 
----pom.xml 
--------ModuleA 
---------pom.xml 
--------ModuleB 
---------pom.xml 

---ProjectB 
-----pom.xml 

은 전용 속성으로 정의하고 내가 PROJECTA의 속성 섹션에서 inherrited되는 버전에 대한 exept ModuleA의 POM에 정의되어 ProjectB에서 뭔가를 dependeny 있습니다.

나는 모든 poms의 모든 수동 업데이트를 없애기 위해 릴리스 프로세스를 자동화하려고합니다. ProjectB를 출시 한 후 ProjectA에서 모든 참조를 범했습니다.

편집 내가 (때문에 종속성)과 I가 최신 ProjectB에 대한 참조를 원하는 PROJECTA의 새로운 스냅 샷에 PROJECTA의 릴리스를 포함하는 ProjectB을 해제하려면보다 정확한.

maven plugin 버전은 동일한 pom에서 종속성과 버전 번호를 지정하면 꽤 잘됩니다. 당신이 볼 수있는 나의 문제는 버전 플러그인이 ProjectA의 속성 필드에서 속성을 검사하려고 할 때 그 속성이 의존성으로 배제 될 때이다. 그리고 나는 버전 plugin이 ModuleA의 pom에 대한 의존성이 업데이트되어야한다는 것을 알기 때문에 효과적인 pom을 찾는다. 단지 정의되지 않았기 때문에 업데이트 할 수 없습니다.

부모님의 집에서 내 소유물을 유지할 수있는 해결책이 많이 필요합니다.

감사합니다.

+0

글쎄, 당신은이 작업을 수행해서는 안된다. 더 이상 반복 가능한 빌드가 없습니다. –

+0

아마 너를 제대로 이해하지 못했을거야. ProjectA에는 두 개의 모듈이 있습니다. 프로젝트의 모든 모듈은 ProjectA의 버전과 동일한 버전입니다. 그렇다면 반복적 인 빌드를 어떻게 유지할 수 있습니까? 오, 그리고 만약 내가 의존성 버전을 범하기를 원한다면 이것은 또한 전체 ProjectAs 버전을 부딪 칠 것입니다. – Jaco

답변

4

좋습니다. 그래서 나는 뭔가를 만들었지 만 다른 사람들이 볼 수 있도록 여기에 게시 할 것입니다.

그래서 제가 생각하기에 문제는 autoLinkItem이 현재 파일에서 연결을 검색하고 속성이 동일한 파일에 지정되지 않은 종속성을 사용하여 속성을 지정하려는 경우 명시 적으로이를 플러그인에 알릴 수 있다는 것입니다. 이처럼

는 :

<plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>versions-maven-plugin</artifactId> 
     <version>1.2</version> 
     <configuration> 

     <properties> 
     <property> 
      <name>basis.version</name> 
      <dependencies> 
      <dependency> 
       <groupId>com.mycompany.app.basis</groupId> 
       <artifactId>ModuleBasis</artifactId> 
      </dependency> 
      </dependencies> 

     </property> 
     </properties> 
      <includeProperties>basis.version</includeProperties> 
      <generateBackupPoms>false</generateBackupPoms> 
      <allowSnapshots>true</allowSnapshots> 
     </configuration> 
    </plugin> 
+0

비슷한 문제가 발생했습니다. 이것이 유일한 해결책입니다. 답을 좋아했습니다. – sumanr

관련 문제