Java Ant未编译*.properties文件

Java Ant未编译*.properties文件,java,ant,build,Java,Ant,Build,我是Ant的新手,在编译我的项目时遇到了一些问题。我的项目src/中有几个.properties文件。我正在通过下面发布的build.xml将我的项目编译成.WAR。在部署时,我看到几个FileNotFound异常,甚至在解包.WAR文件之后,我也看到*.properties文件没有出现在我的最终发行版中。我做错了什么?提前谢谢 build.xml 调用war任务时,您只是没有包含这些属性文件。您应该明确地包含它们。我使用zipfileset添加前缀,以便将它们放置在正确的路径中: <wa

我是Ant的新手,在编译我的项目时遇到了一些问题。我的项目src/中有几个.properties文件。我正在通过下面发布的build.xml将我的项目编译成.WAR。在部署时,我看到几个FileNotFound异常,甚至在解包.WAR文件之后,我也看到*.properties文件没有出现在我的最终发行版中。我做错了什么?提前谢谢

build.xml


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

为静态文件添加一个额外的classes元素,比如@srkavin:谢谢!这完全正确。这似乎有道理;不幸的是,即使应用了此更改,.properties文件仍然不是最终发行版的一部分。还有什么东西可能会阻止此实现的功能吗?我看到它包括它,但不在需要更新的类/目录中。@Sean。不过,不可否认,斯卡文提出的解决方案更好。
<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>