2014-12-04 4 views
1

부모 속성에 대한 액세스를 얻을 수 없습니다 : 나는Maven은 내가 구조 다음 한

<properties> 
<product-version>3.7.8</product-version> 
</properties> 

내가 child-component을 구축하고있다 ${product-version} 사용과 같은 버전의 속성이 부모 POM에서

parent-pom (pom) 
| 
    - base-component (with <parent> parent-pom </parent>)(pom) 
    | 
    -- child-component (with <parent> base-component </parent>)(jar) 
    -- some-folder/another-child (with <parent> base-component </parent>)(jar) 

- 오류없이 빌드됩니다. 그러나 another-child (자식 구성 요소를 종속성으로)을 만들려고 할 때 - <relativePath>을 설정하더라도 maven이 ${product-version}을 읽을 수 없거나 Could not find artifact base-component이라는 오류가 발생합니다.

문제는 기본 구성 요소와 다른 구성 요소 사이의 폴더라고 생각하지만 레벨을 위로 이동할 수는 없습니다.

아이디어가 있으십니까?

+0

"another-child"가 올바른 부모를 사용합니까? – wemu

+0

@wemu 나는 예라고 생각하고 "another-child"는 기본 구성 요소에 입니다. –

답변

0

another-child 모듈에서 상대 경로가 올바르게 설정되어 있는지 확인하십시오. 또 다른 디렉토리이기 때문에, 부모 base-component은 두 개의 디렉토리에 의해해야한다 : 또한

<parent> 
    <groupId>...</groupId> 
    <artifactId>base-component</artifactId> 
    <version>...</version> 
    <relativePath>../../pom.xml</relativePath> 
</parent> 

base-component 프로젝트에 모듈 정의 another-child에 대한 추가 경로가 포함되어 있는지 확인하십시오, 그래서 같은 것을해야한다 :

<modules> 
    <module>child-component</module> 
    <module>some-folder/another-child</module> 
</modules> 

another-child (또는 다른 서브 모듈)을 구축하기 전에 루트 부모에서 시작하여 전체 프로젝트를 (mvn install)를 구축하려고합니다.

+0

감사합니다. 이미 구성을 설명했습니다. 기본 구성 요소를 먼저 빌드하는 경우에만 작동합니다. 하위 구성 요소 (다른 자식)를 기본 구성 요소를 먼저 빌드하지 않고 별도로 빌드 할 수있는 방법이 있습니까? –

+1

@DmitriyLarkin 기본 구성 요소를 먼저 작성하면 _은 무엇을 의미합니까? _ 기본 구성 요소를 빌드하면 '하위 구성 요소'와 '다른 하위 구성 요소'도 빌드됩니다. 그것이 집계의 아이디어입니다. –