使用Ant在WAR中包含目录

时间:2012-01-09 08:50:12

标签: ant

我正在使用ANT构建war文件,我想将src目录包含在war文件中。当我使用fileset元素时,仅包含该文件夹的内容。我希望src目录包含在WEB-INF文件夹中。我不想将源复制到磁盘上的WEB-INF文件夹。 Ant正确地将我的lib目录中的jar包含到WEB-INF/lib中,而不在我的项目中复制它们。

所以我会有这样的事情:

/WEB-INF
/WEB-INF/src
/WEB-INF/classes
/WEB-INF/lib
/META-INF

目标如下:

<target name="war" depends="init">
    <war destfile="dist/web.war" webxml="WebContent/WEB-INF/web.xml">
        <fileset dir="WebContent"/>
        <lib dir="WebContent/WEB-INF/lib"/>
        <lib dir="lib"/>
        <classes dir="build/classes"/>
        <classes dir="config"/>
    </war>
</target>

1 个答案:

答案 0 :(得分:8)

我假设您试图将src包含在内:

<fileset dir="src"/>

如果你使用它,它应该有效:

<fileset dir="." includes="src/**"/>

如果您需要将文件或目录放入战争中的特定路径,则可以使用zipfileset代替其前缀属性,例如

<zipfileset dir="." includes="src/**" prefix="WEB-INF"/>

(另请参阅war task documentation中的示例,其中包括zipfileset的用法)。