2012-01-04 64 views
1

給定包含用於不同RDBMS的JAR連接器的文件夾「數據庫」。每個JAR位於它自己的文件夾中:maven資源插件資源平面副本

+---database 
    +---db2 
     +---db2.jar 
    +---derby 
     +---derby.jar 
    +---h2 
     +---h2.jar 
    +---mysql 
     +---mysql.jar 

我需要將所有這些JAR文件複製到WEB-INF \ lib中。

這裏是我的pom.xml:

<build> 
    <plugins> 
     ... 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.1.1</version> 
      <configuration> 
       <webResources> 
        <resource> 
         <directory>../target/${project.artifactId}/classes/database</directory> 
         <targetPath>WEB-INF/lib</targetPath> 
         <includes> 
          <include>**/*.jar</include> 
         </includes> 
        </resource> 
       </webResources> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

的問題是,這些JAR文件與他們的目錄複製:

+---WEB-INF/lib 
    +---db2 
     +---db2.jar 
    +---derby 
     +---derby.jar 
    +---h2 
     +---h2.jar 
    +---mysql 
     +---mysql.jar 

這是應該的:

+---WEB-INF/lib 
    +---db2.jar 
    +---derby.jar 
    +---h2.jar 
    +---mysql.jar 

我有20個連接器,我不想對它們進行硬編碼。

回答

2

你有問題,因爲你試圖將maven彎曲成它不應該做的事情。二進制工件應該部署到您的工件庫(或本地Maven庫)中,並且不包含在您的項目中。通過這種方式將它們定義爲pom中的依賴項可確保將它們複製到您的WEB-INF/lib中。