如何从Ant生成的war中排除java源文件?

如何从Ant生成的war中排除java源文件?,java,deployment,ant,Java,Deployment,Ant,我正在使用Ant为我的web应用创建一个war。我有一个类似的脚本: <target name="createWar" depends="init" description="Crea el war final"> <war destfile = "myapp.war" webxml = "${webApp}/WEB-INF/web.xml" >

我正在使用Ant为我的web应用创建一个war。我有一个类似的脚本:

<target name="createWar"  depends="init" description="Crea el war final">
    <war destfile = "myapp.war" webxml = "${webApp}/WEB-INF/web.xml" >
        <fileset dir = "${webApp}">
            <include name = "**/*.*"/>
            <exclude name="**/.git/"/>
            <exclude name="WEB-INF/work/"/>
            <exclude name="WEB-INF/tmp/"/>
            <exclude name="build.properties"/>
            <exclude name="build.properties.base"/>
            <exclude name="build.xml"/>
            <exclude name="**/.settings"/>
            <exclude name=".proyect"/>
        </fileset>
        <lib dir = "${lib}"/>
        <classes dir = "${src}">
            <include name="src/**/*.java"/>
            <include name="conf/**/*.java"/> 
        </classes>
    </war>
</target>


我遇到的问题是,导致的战争在“WEB-INF/classes/src”目录中有源文件(.java文件)是否有办法不包含源文件,而只包含.class文件?非常感谢。

如果尚未这样做,请更改您的项目,使
javac
输出与
src
树分离-例如
classes.dir=build\classes
-然后可以从生成的代码目录复制war:

<!-- classes dir = "${src}" -->
<classes dir = "${classes.dir}">
    <!-- include name="src/**/*.java"/ -->
    <!-- include name="conf/**/*.java"/ --> 
</classes>

但是,我发现首先将项目的所有类文件打包为JAR更容易:

<jar basedir="${classes.dir}" jarfile="${lib}/${ant.project.name}.jar" update="true" />


然后,如果该项目也是一个WAR项目,那么单个jar
${ant.project.name}.jar
可以在
${ant.project.name}.WAR
中复制,一步就可以将它们作为路径
WEB-INF\lib\${ant.project.name}.jar
<?