使用Ant在WAR中包含目录

ude*_*eng 3 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
Run Code Online (Sandbox Code Playgroud)

目标看起来像这样:

<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>
Run Code Online (Sandbox Code Playgroud)

sud*_*ode 8

我假设你试图包括这样的src:

<fileset dir="src"/>
Run Code Online (Sandbox Code Playgroud)

如果您使用它,它应该工作:

<fileset dir="." includes="src/**"/>
Run Code Online (Sandbox Code Playgroud)

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

<zipfileset dir="." includes="src/**" prefix="WEB-INF"/>
Run Code Online (Sandbox Code Playgroud)

(另请参阅war任务文档中的示例,其中包括zipfileset的用法).