2011-03-07 73 views
9

我有一個包含文件src/main/webapp/META-INF/context.xml的Web應用程序,其中包含用於測試數據庫的一些配置。在生產服務器上,這個文件位於$ TOMCAT_HOME/conf/Catalina/localhost/ROOT.xml中,並且正在使用嵌入式tomcat進行測試,因此我不想打包該文件。我想從maven build中排除這個文件。我嘗試以下操作:從maven版本中排除文件

<build> 
    ... 
    <resources> 
    <resource> 
     <directory>src/main/webapp/META-INF</directory> 
     <filtering>true</filtering> 
     <excludes> 
     <exclude>context.xml</exclude> 
     </excludes> 
    </resource> 
    </resources> 
</build> 

,也如下:

<build> 
    ... 
    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-war-plugin</artifactId> 
    <configuration> 
     <resources> 
     <resource> 
      <directory>src/main/webapp/META-INF</directory> 
      <filtering>true</filtering> 
      <excludes> 
      <exclude>context.xml</exclude> 
      </excludes> 
     </resource> 
     </resources> 
    </configuration> 
    </plugin> 
</build> 

但還是被封裝在戰爭和構建目錄(例如文件目標/ MYAPP-1.0-SNAPSHOT/META-INF /上下文.XML)。我究竟做錯了什麼?

回答

18

您可以嘗試使用packagingExcludes參數

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.1.1</version> 
      <configuration> 
       <packagingExcludes>META-INF/context.xml</packagingExcludes> 
      </configuration> 
     </plugin> 

要排除從建設資源,在這個問題的第一個片段看起來不錯,但應指定resourcedirectory的絕對路徑。例如

<directory>${basedir}/src/main/webapp/META-INF</directory> 
+0

工程就像一個魅力。謝謝。 是否有可能完全排除它的構建?我的意思是從構建目錄(例如,目標/ myapp-1.0-SNAPSHOT)。如果不是,我想我可以忍受複製戰爭。 – woky 2011-03-08 18:39:54

+0

@woky。更新答案以迴應附加查詢 – Raghuram 2011-03-09 03:38:13

+0

@Raghuram:不幸的是它不起作用。 (我的Maven版本:Apache Maven 3.0.2(r1056850; 2011-01-09 01:58:10 + 0100))。 – woky 2011-03-09 12:36:11

0

最近我有一個persistence.xml類似的問題。嘗試把這個到您的POM:

<build> 
    <plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-jar-plugin</artifactId> 
     <configuration> 
     <excludes> 
      <exclude>META-INF/context.xml</exclude> 
     </excludes> 
     </configuration> 
    </plugin> 
    </plugins> 
</build> 

如果沒有幫助,請嘗試使用Maven的戰爭插件取代的maven-JAR-插件