2010-06-09 5 views
12

(도 받는다는 사용자에 게시)메이븐 2 <resources> 상속 (부모 -> 아이 프로젝트)

처리 및 WAR 자원에 관련된 사람의 pom.xml에서 요소의 상속에 도움이 되거 수 있는지 궁금 플러그인.

pom [1]에 대한 문서는 "병합 된 POM의 요소"아래에 나열된 리소스가 있습니다. maven 2.2.1에 대한 내 로컬 화환에 대한 일부 실험은 그 동작을 나타내지 않습니다. 내가봤을 때 자식 프로젝트 (다중 모듈 빌드에서)에 의해 상속 된 것처럼 보이지만, 그 프로젝트 중 하나라도 자체 블록을 가지고 있다면 병합되지 않고 부모를 대체합니다. 그 맞습니까?

예 : 최종 WAR에 포함되지 dev에있는 파일과

parent-pom.xml 
| 
|-> child-pom.xml 

다음 작품 나는 예상대로.

<resources> 
    <resource> 
     <directory>src/main/resources</directory> 
     <excludes> 
      <exclude>${dev-config.path}</exclude> 
     </excludes> 
    </resource> 
    <resource> 
     <directory>src/main/rules</directory> 
    </resource> 
    <resource> 
     <directory>src/test/rules</directory> 
    </resource> 
</resources> 

(SRC/메인/자원에 대한 선언을 제거) 아이에 다음과 같은 변화가 SRC에 결과에 나타납니다 부모의 pom.xml

<resources> 
    <resource> 
     <directory>src/main/resources</directory> 
     <excludes> 
      <exclude>${dev-config.path}</exclude> 
     </excludes> 
    </resource> 
<resources> 

아동의 pom.xml/main/resource은 프로세스 자원 중에 고려되지 않았으며, 부모로부터 상속받은 것이 아닙니다.

아이의 pom.xml

<resources> 
    <resource> 
     <directory>src/main/rules</directory> 
    </resource> 
    <resource> 
     <directory>src/test/rules</directory> 
    </resource> 
</resources> 

[1] http://maven.apache.org/guides/introduction/introduction-to-the-pom.html

답변

10

사실, 즉 문서화의 말씀입니다. 그러나 Maven 상속은 리소스를 추가하는 대신 리소스를 무시하는 것으로 확인되었습니다. 실제로는 MNG-2751에 캡쳐되고 간접적으로는 MNG-2027에 캡쳐됩니다.

TBH, 나는이 상황에서 개인적으로 행복하다. 나는 아이가 말라리아가 특정 요구에 의해 "오염"되고 싶지 않다는 것을 알기에 매우 궁금하다. 배타적 인 경우),이 동작을 변경하면 많은 프로젝트가 중단 될 수 있습니다.

+0

프로필을 사용하지 않는 관리와 같은 몇 가지 일을 덜 우아하게 만들지 만 교체는 괜찮습니다. 우리는 <제외 요소>에 전달되는 변수를 사용하여 작업했지만 약간 부정했습니다. – jayshao

+0

@jayshao 저는 개인적인 의견을 표현하고 있으며 진실을 억류한다고 주장하지 않습니다. 메이븐 사용자 목록에 대한 피드백, 나는 지금 호기심이 많다. –

+0

@ pascal-thivent 예, 답장을 보지 못했지만, 현재 가지고있는 것은 현재 실행 가능합니다. 그러나 어린이 POM이 내가 원하는 것보다 더 쉬기는 더 쉽습니다. – jayshao

관련 문제