2017-01-11 91 views
0

我有一個非常奇特的場景,在我的項目lib目錄下有很多子文件夾,其中包含我正在使用的罐子的依賴jar。例如。Ant構建包含來自lib的子目錄的罐子

lib/abc.jar 
lib/abcDependent/abc1.jar 
lib/abcDependent/abc2.jar 
lib/abcDependent/abc3.jar 

現在,由於我在做ant構建,我只是想包括所有的jar沒有目錄結構的戰爭。但是下面的代碼片段也包含了目錄結構。

<lib dir="${lib.dir}"> 
       <include name="dp-common-${project.major.verson}.${project.minor.version}.jar" /> 
       <include name="**/*.jar" /> 
      </lib> 

期待終於有我的戰爭的lib目錄中的所有罐子。像

lib/abc.jar 
lib/abc1.jar 
lib/abc2.jar 
lib/abc3.jar 

在此先感謝。

回答

0

如果我必須這樣做,我寧願採用以下方法。

  • 創建一個具有相同所需目錄結構的臨時目錄來創建war文件。
  • 現在將jar文件複製到目標目錄,如lib
  • 並最終創建歸檔
  • 刪除一旦上面創建的臨時目錄做

這樣,你應該能夠創建無論是使用中間的最終方案相同或不同的目錄結構目錄。

1

而不是<LIB>,這僅僅是一個速記在.war文件創建,使用mappedresources子元素放置文件集下的WEB-INF/lib目錄下:

<zipfileset prefix="WEB-INF/lib"> 
    <mappedresources> 
     <fileset dir="${lib.dir}"> 
      <include name="dp-common-${project.major.verson}.${project.minor.version}.jar" /> 
      <include name="**/*.jar" /> 
     </fileset> 
     <flattenmapper/> 
    </mappedresources> 
</zipfileset>