1

有没有办法将一些文件包含到战争的类文件夹中?Eclipse 构建了正确的战争,但我的 ant 脚本无法将文件包含到类文件夹中。

...
    <property name="src.dir" location="src" />
    <property name="build.dir" location="build" />
    <property name="classes.dir" location="${build.dir}/classes" />

    <target name="war" depends="mklib, retrieve, compile">
    <war destfile="${war.file}" webxml="${webContent.dir}/WEB-INF/web.xml">
        <classes dir="${classes.dir}" />
        <fileset dir="${webContent.dir}" excludes="**/servlet-api*.jar,**/jsp-api*.jar" />
        <fileset dir="${classes.dir}" includes="**/*.xml,**/*.sql" />
    </war>
</target>
...
4

2 回答 2

2

我要感谢你,他花了一点时间来考虑这个解决方案。无论如何,我需要的只是简单得多

<target name="war" depends="mklib, retrieve, compile">
    <war destfile="${war.file}" webxml="${webContent.dir}/WEB-INF/web.xml">
        <classes dir="${classes.dir}" />
        <classes dir="${src.dir}" includes="**/start.xml, **/per*.xml, **/*.sql" />
        <fileset dir="${webContent.dir}" excludes="**/servlet-api*.jar,**/jsp-api*.jar" />
    </war>
</target>

所需要做的就是将包含或包含属性写入类

于 2013-10-27T19:31:27.360 回答
1

<classes/>子实体可用于文件以外的东西*.class。所有<classes/>子实体所做的就是将指定的文件放在WEB-INF/classes你的战争目录中:

<target name="war" depends="mklib, retrieve, compile">
<war destfile="${war.file}" webxml="${webContent.dir}/WEB-INF/web.xml">
    <classes dir="${classes.dir}" />
    <classes dir="${resources.dir}"/>  <!-- Other files that are in WEB-INF/classes -->
</war>

(我会使用你的例子,但是你有<fileset dir="${classes.dir}"这意味着你将你的东西${classes.dir}(你编译你的代码的地方)放入你的战争的根目录中,这可能不是你想要的。(

您也可以使用<zipfileset/>代替 plain <fileset>。采用<zipfileset>与 相同的所有参数和子实体<fileset>,但还包括一个prefix参数,您可以在其中指定前缀目录:

<target name="war" depends="mklib, retrieve, compile">
<war destfile="${war.file}" webxml="${webContent.dir}/WEB-INF/web.xml">
    <classes dir="${classes.dir}" />
    <classes dir="${resources.dir}"/>
    <zipfileset prefix="foo/resources"
       dir="${foo.dir}">
       <include name="**/*.foo"/>
    </zipfileset>
</war>
于 2013-10-27T15:40:57.637 回答