如何从Ant生成的war中排除java源文件?
我正在使用Ant为我的web应用创建一个war。我有一个类似的脚本:如何从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" >
<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
<?