2012-09-19 5 views
1

필자는 maven multimodule 프로젝트를 가지고 있으며, POM 속성을 기반으로하는 두 가지 경우에 대한 프로파일 설정을 사용자 정의하기 위해 프로파일을 사용할 수 있기를 바랬지 만, 프로파일은 외부 속성에 의해서만 활성화 될 수 있습니다. POM 속성별로 다른 프로젝트 구성을 가진 다른 방법을 찾고 있는데 몇 가지 아이디어를 얻고 싶었습니다. 여기에 내 설정은maven 커스텀 플러그인 설정

나는 3 레벨 트리를 가지고있다 : 루트 부모 POM X는 많은 많은 서브 모듈 A, B, C, ... 그리고 이들 각각의 모듈은 2 개의 서브 모듈 1과 2를 가지고있다. (그래서 A1, A2 , B1, B2 등)

내가해야 할 일은 유형 1의 모든 모듈에 대한 리프 모듈 구성을 사용자 정의하고 유형 2의 모든 모듈에 대해 구성을 사용자 정의하는 것입니다. 모든 1의 공유를 공통 부모 및 모든 2의 다른 (다른) 공통 부모는 이미 1과 2가 각각의 부모 (A 또는 B 예)로부터 일부 데이터를 공유하기 때문입니다. 다른 방법이 없다면 A에서 A1과 A2 (이상적, DRY 원칙 없음)의 모든 공통 데이터를 푸시하고 모든 1을 공통 1 부모로부터 상속 받도록합니다. 그러나이 문제를 피하려고합니다. 내가 말했듯이, 내가 시도한 것은 그것이 1 또는 2인지를 지정하는 속성을 가진 트리의 나뭇잎에 속성을 설정 한 다음 조부모 POM X에 두 개의 다른 프로필을 넣고 속성을 기반으로 프로필을 활성화하는 것이 었습니다 . 이것은 작동하지 않았다.

다른 제안 사항이 있으십니까? POM의 자식 모듈에 확실한 버전 2.5을 정의

<pluginManagement> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-surefire-plugin</artifactId> 
     <version>2.5</version> 
     <configuration> 
     <systemPropertyVariables> 
       <vendor.license.file>../licenses/vendor.lic</vendor.license.file> 
     </systemPropertyVariables> 
     </configuration> 
    </plugin> 
</pluginManagement> 

:

+1

모듈 레이아웃을 설명하고 사용중인 플러그인을 지정하는 다이어그램 (필요한 경우 pom.xml 스 니펫 포함)을 사용하여이 질문을 수정하십시오. – noahlz

답변

-1

나는 당신의 부모 POM, 당신이 뭔가를 가지고, 당신은 예를 들어 <pluginManagement>

과 목표를 달성 할 수있다 생각합니다. 하위 프로젝트가 상속 (및 재정의)하는 구성과 같이 실제로 플러그인 구성에 버전 이상을 추가 할 수 있습니다. Maven POM Reference - Plugin Management

+0

귀하의 솔루션은 두 가지 다른 구성을 허용하지 않습니다 : if (유형 1) {사용 config 1} else if (유형 2) {사용 config 2} – Hilikus

+0

Do "유형 1 "과"유형 2 "는 상위 POM이 다릅니다. 또한 속성 (예 : 파일의 존재 여부)을 기반으로하여 프로필을 활성화 할 수 있습니까? 각 하위 모듈에서 프로파일을 만들어 "기본적으로 활성화"할 수 있습니까? – noahlz

+0

지금 그들은 부모님이 공통점이 있습니다. 제가 OP에서 말했듯이, A1, A2가 있기 때문에 그들은 부모 A를 공유하고 B1, B2는 부모 B를 공유합니다. 제가 언급 한 옵션은 A1과 B1을 부모가 공유하게 만드는 것입니다 common1 대신 A2 B2가 상위 common2를 공유합니다. 그러나 나는 ** A **와 ** B에서 일반적인 정보를 가지고 있으며 A1과 A2에서 푸시 다운과 복제가 필요합니다. – Hilikus