2009-11-23 35 views
42

Tôi đang cố thêm một số bộ lọc vào tệp ngữ cảnh ứng dụng, nằm trong thư mục WEB-INF.Lọc các tệp Maven vào WEB-INF

Tôi có tệp cần lọc (xmlgateway-context.xml) trong thư mục/src/main/resources.

tôi có các thuộc tính tập tin (config-e05.properties) trong thư mục src/main/lọc

Và tôi có POM thiết lập như sau:

<!-- environment profiles --> 
<profiles> 
<profile> 
    <id>e04</id> 
    <properties> 
    <targetenv>e04</targetenv> 
    </properties> 
</profile> 
<profile> 
    <id>e05</id> 
    <properties> 
    <targetenv>e05</targetenv> 
    </properties> 
</profile> 
</profiles> 

<!-- build settings (filtering) --> 
<build> 
<filters> 
    <filter>src/main/filters/config-${targetenv}.properties</filter> 
</filters> 
<resources> 
    <resource> 
    <targetPath>WEB-INF</targetPath> 
    <filtering>true</filtering> 
    <directory>src/main/resources</directory> 
    </resource> 
</resources> 
</build> 

này sẽ mvn cài đặt một cách chính xác , nhưng khi tôi mở tệp chiến tranh đầu ra, tôi đã mong đợi tệp xmlgateway-context.xml nằm trong thư mục/WEB-INF, nhưng nó kết thúc trong thư mục/WEB-INF/classes/WEB-INF.

Làm cách nào để có tệp này vào đúng vị trí.

Hoặc, tôi có thể đặt bối cảnh ứng dụng vào một vị trí khác và đề cập đến nó ở đó hay không.

+0

tôi thêm maven- 2 thẻ, tôi đoán bạn không nhớ. – Bozho

Trả lời

85
<plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-war-plugin</artifactId> 
     <version>2.0.2</version> 
     <configuration> 
      <webResources> 
       <resource> 
        <directory>${basedir}/src/main/webapp/WEB-INF</directory> 
        <filtering>true</filtering> 
        <targetPath>WEB-INF</targetPath> 
        <includes> 
         <include>**/xmlgateway-context.xml</include> 
        </includes> 
       </resource> 
      </webResources> 
     </configuration> 
    </plugin> 
</plugins> 

Thêm phần trên vào tệp pom.xml của bạn. CHỈNH SỬA: Chỉ cần giải thích những gì mà conf ở trên đang thực hiện. Với điều này được thêm vào, mvn sẽ lọc các tập tin dưới src/main/webapp/WEB-INF và đặc biệt lọc các tập tin đính kèm xmlgateway-context.xml và sau khi lọc nó sẽ đẩy các tập tin trong thư mục WEB-INF (đó là những gì các thẻ target nói).

Cập nhật nếu có điều gì đó không rõ ràng.

+0

Cắt và dán và hoạt động như mô tả. Ta rất nhiều. – Xetius

+5

Chỉ cần quan sát thêm, phiên bản 2.4 dường như không hoạt động với cấu hình này, phiên bản mới nhất và hoạt động với cài đặt này tôi thấy là 2.3, cổ vũ. –

+0

cảm ơn @tomasz_kusmierczyk cho quan sát này –

4

bạn nên định cấu hình lọc qua maven war plugin: checkout these examples.

+4

Có thể chấp nhận điều này nếu tôi có thể nhờ liên kết, nhưng @peakit thắng do cắt và dán sự lười biếng cho tôi. – Xetius

-1

Đặt file xmlgateway-context.xml trong src/main/webapp/WEB-INF và cấu hình như thế này:

<build> 
    <filters> 
     <filter>src/main/filters/config-${targetenv}.properties</filter> 
    </filters> 
    <resources> 
     <resource> 
       <filtering>true</filtering> 
       <directory>src/main/webapp/WEB-INF</directory> 
     </resource> 
    </resources> 
</build> 
0

Với filteringDeploymentDescriptors thiết lập là true

 <build> 
     <finalName>web-project-name</finalName> 
     <filters> 
      <filter>src/main/resources/app.properties</filter> 
     </filters> 
     <resources> 
      <resource> 
       <directory>src/main/resources</directory> 
       <filtering>true</filtering> 
      </resource> 
     </resources> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.1</version> 
       <configuration> 
        <source>1.8</source> 
        <target>1.8</target> 
        <compilerArguments> 
         <endorseddirs>${endorsed.dir}</endorseddirs> 
        </compilerArguments> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-war-plugin</artifactId> 
       <version>2.4</version> 
       <configuration> 
        <failOnMissingWebXml>false</failOnMissingWebXml> 
        <filteringDeploymentDescriptors>true</filteringDeploymentDescriptors> 
       </configuration> 
      </plugin>   
     </plugins> 
    </build> 
Các vấn đề liên quan