2011-02-02 23 views
7

我使用ant來構建我的web應用程序。我確信這很簡單,但我無法弄清楚如何告訴ant在WEB-INF目錄中創建一個特定的文件夾並將文件複製到它。使用ant war任務將文件包含在WEB-INF目錄中

我的螞蟻戰爭任務看起來是這樣的:

<target name="warItUp" depends="compile"> 
    <war destfile="MyApp.war" webxml="${home.dir}\WEB-INF\web.xml"> 

     <classes dir="${classes.dir}"/> 
     <classes file="${src.dir}/hibernate.cfg.xml"/> 
     <classes dir="${src.dir}" includes="**/*.hbm.xml"/> 

     <!-- Include the PDF files --> 
     <fileset dir="${home.dir}/PDFs"> 
      <include name="**/*.pdf"/> 
     </fileset> 

     <!-- Include the JSP files --> 
     <fileset dir="${home.dir}/JSPs"> 
      <include name="**/*.jsp"/> 
     </fileset> 

     <!-- Include the images --> 
     <fileset dir="${home.dir}/images"> 
      <include name="**/*"/> 
     </fileset>   
    </war> 

所有文件集的元素工作,即它們包括在戰爭文件的根目錄下的PDF,JSP和圖像文件。

但是,如果我想在WAR文件的WEB-INF目錄中創建一個子目錄並在其中包含文件,我該如何指定它?例如比如我想在war文件中包含WEB-INF/TagLibraryDescriptors/MyTagLib.tld,或者我想在我的war文件中創建一個WEB-INF/JSP文件夾並將所有JSP文件複製到它。

謝謝。

+0

找到了解決辦法我自己,看到下面回答。對不起浪費任何人的時間。 – CodeClimber 2011-02-02 11:50:19

回答

14

OP在這裏,感謝所有的迴應。我找到了另一個解決方案 - 有一個可以包含在戰爭任務中的webinf元素。

這將從源頭的JSP文件夾中的文件複製到WEB-INF文件夾中的WAR文件:

<webinf dir="${home.dir}/JSPs" 
includes="**/*.jsp"> 
</webinf> 

,而這將從源的JSP文件夾中的文件複製到WEB-INF/JSP的文件夾(我的優先選擇):

<webinf dir="${home.dir}" 
includes="/JSPs/**/*.jsp"> 
</webinf> 

我想我會用這個解決方案,但感謝您的答覆堅持。

1

嘗試創建這個目錄到你的項目,然後只需添加文件集如下所示:

<fileset dir="${home.dir}/WEB-INF/mydirectory/*"> 
      <include name="**/*"/> 
</fileset>   
5

作爲替代嵌套webinf元素,你也可以使用zipfileset元素,它可以讓你指定源文件夾和歸檔文件的路徑前綴:

<zipfileset dir="${home.dir}/JSPs" includes="**/*.jsp" prefix="WEB-INF/JSPs"/> 
相關問題