Ant没有编译* .properties文件

时间:2014-10-21 20:16:50

标签: java ant build

我是Ant的新手,我在编译项目时遇到了一些问题。我的项目.properties中有几个src/个文件。我通过我的.WAR(在下面发布)将我的项目编译为build.xml。在部署时,我看到几个FileNotFound例外,甚至在解压缩.WAR文件后,我发现*.properties文件在我的最终版本中不存在。我究竟做错了什么?提前谢谢。

的build.xml

<?xml version="1.0" ?>
<project name="APP" default="war">

<path id="compile.classpath">
    <fileset dir="WebContent/WEB-INF/lib">
        <include name="*.jar" />
    </fileset>
</path>

<target name="init">
    <mkdir dir="build/classes" />
    <mkdir dir="dist" />
</target>

<target name="compile" depends="init">
    <javac destdir="build/classes" includeantruntime="false" debug="true" srcdir="src">
        <classpath refid="compile.classpath" />
    </javac>
</target>

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

1 个答案:

答案 0 :(得分:0)

调用war任务时,您根本没有包含这些属性文件。你应该明确地包含它们(我使用zipfileset添加前缀,以便它们被放置在正确的路径中):

<war destfile="dist/APP.war" webxml="WebContent/WEB-INF/web.xml" duplicate="preserve">
    <fileset dir="WebContent" />
    <zipfileset dir="src"
          prefix="WEB-INF/classes">
          <include name="**/*.properties"/>
    </zipfileset>
    <lib dir="WebContent/WEB-INF/lib" />
    <classes dir="build/classes" />
</war>

或者srkavin在评论中提出的建议(但是对子目录中的文件进行了一些修改):

<war destfile="dist/APP.war" webxml="WebContent/WEB-INF/web.xml" duplicate="preserve">
    <fileset dir="WebContent" />
    <lib dir="WebContent/WEB-INF/lib" />
    <classes dir="build/classes" />
    <classes dir="src" includes="**/*.properties"/>
</war>