2011-02-02 24 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"/> 
相关问题