2009-07-09 2 views
12

자원에 대해 "resources"디렉토리를 지정하는 super pom이 정의되어 있습니다. 내 프로젝트 중 하나에서, pom은 그 슈퍼 pom을 확장하고 추가 리소스를 추가하고 싶습니다. 나는 시도 :추가 리소스를 Maven POM에 추가

<resources> 
     <resource> 
      <targetPath>/</targetPath> 
      <directory>additionalDir</directory>     
     </resource> 
    </resources> 

하지만 그 자원에있는 additionalDir 결과와 슈퍼 치어의 자원을 포함하지 않습니다. 슈퍼 핌의 자원을 확장 할 수있는 방법이 있습니까?

답변

14

설명 된 동작이 필요합니다.

슈퍼 POM은 Maven의 default POM에서 상속 받았으며 pom에 정의한 거의 모든 플러그인이 기본 POM의 설정을 효과적으로 무시한다는 점에 유의하십시오. 예를 들어 기본 리소스에서 필터링을 사용하려면 POM에 경로를 지정해야합니다. 이 작업을 수행 :

<resources> 
    <resource> 
    <directory>src/main/resources</directory> 
    <filtering>true</filtering> 
    </resource> 
</resources> 

되지 않음이 :

<resources> 
    <resource> 
    <filtering>true</filtering> 
    </resource> 
</resources> 

기본 디렉토리하지 않습니다 당신이 거기를 지정한 경우에도 당신을 위해 거품까지. 특별한 MOJO가있을 수도 있지만 찾을 수는 없습니다.

+0

명확히 해 주셔서 감사합니다. –

+0

궁금한 점이 있는데,이 문제의 수정 방법은 무엇입니까? 제발 좀 더 명확하게 해 주시겠습니까? 어디에서 변경해야합니까? – Jaskey

3

build-helper-maven-plugin의 usage 페이지를 참조하십시오.

+0

이것은 작동합니다. ' $ {project.outputDirectory}'및' true '을 문서화하지 않아도 (작동하지만) 지정하는 것은 다소 불쾌합니다. – ggb667

0

예, 새 리소스 섹션을 다시 정의 할 때 상위 POM 리소스를 덮어 씁니다.

그러나, 리소스를 추가하는 간단한 방법은

  • 이 프로젝트에 유효 POM
  • 복사에게 효과적인 POM에서 자원을 표시하여 POM에서 리소스 섹션을 제거

    1. 이다
    2. 절대 경로를 상대 경로로 바꿉니다.
    3. 추가 리소스 추가
  • 관련 문제