将文件包含在战争类文件夹中



有没有办法将一些文件包含在战争的类文件夹中?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>
...

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

<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>

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

<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/> 代替普通<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>

最新更新