2012-08-24 2 views
9

예 :Maven 프로파일로 war에 webResources를 추가하고 프로파일 링되지 않은 webResources를 계속 추가 할 수 있습니까?

"profile"프로필이 활성 일 때 profileResources와 commonResources를 모두 배포하기를 기대하지만 profileResources 만 배포합니다. 원하는 효과를 얻으려면 어떻게해야합니까? 깨진 및 작업 버전 사이

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.example</groupId> 
    <artifactId>test</artifactId> 
    <packaging>war</packaging> 
    <version>0.0.0</version> 
    <profiles> 
    <profile> 
     <id>profile</id> 
     <build> 
     <plugins> 
      <plugin> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.1.1</version> 
      <configuration> 
       <webResources> 
       <resource> 
        <directory>src/main/profileResources</directory> 
       </resource> 
       </webResources> 
      </configuration> 
      </plugin> 
     </plugins> 
     </build> 
    </profile> 
    </profiles> 
    <build> 
    <plugins> 
     <plugin> 
     <artifactId>maven-war-plugin</artifactId> 
     <version>2.1.1</version> 
     <configuration> 
      <webResources combine.children="append"> 
      <resource> 
       <directory>src/main/commonResources</directory> 
      </resource> 
      </webResources> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

망할 놈의 말씀 DIFF (나중에 참조)

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.example</groupId> 
    <artifactId>test</artifactId> 
    <packaging>war</packaging> 
    <version>0.0.0</version> 
    <profiles> 
    <profile> 
     <id>profile</id> 
     <build> 
     <plugins> 
      <plugin> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.1.1</version> 
      <configuration> 
       <webResources> 
       <resource> 
        <directory>src/main/profileResources</directory> 
       </resource> 
       </webResources> 
      </configuration> 
      </plugin> 
     </plugins> 
     </build> 
    </profile> 
    </profiles> 
    <build> 
    <plugins> 
     <plugin> 
     <artifactId>maven-war-plugin</artifactId> 
     <version>2.1.1</version> 
     <configuration> 
      <webResources> 
      <resource> 
       <directory>src/main/commonResources</directory> 
      </resource> 
      </webResources> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

작업 버전

diff --git a/tmp/broken-pom.xml b/tmp/working-pom.xml 
index 2fd9bbf..b04683f 100644 
--- a/tmp/broken-pom.xml 
+++ b/tmp/working-pom.xml 
@@ -31,5 +31,5 @@ 
     <version>2.1.1</version> 
     <configuration> 
      <webResources{+ combine.children="append"+}> 
      <resource> 
       <directory>src/main/commonResources</directory> 

답변

9

시도 비의 resources 요소에 combine.children="append" 추가 -profile plugin- 나는 그것이 엉망이라고 생각한다. 오류 동작은 프로필 설정이 트리 위쪽의 동일한 이름을 가진 모든 것을 무시할 것임을 의미합니다. 속성 병합/추가에 대한 자세한 내용은 http://maven.apache.org/pom.html#Plugins을 참조하십시오.

+0

그게 효과가 있어요 :)! –