我在使用ANT的Struts2的build.xml正确生成war文件时遇到了问题。
我的问题是针对struts.xml,即使我尝试使用标记,我似乎也无法将它放到正确的位置。
将它放入war文件的正确方法是什么?这是我的代码(删除标签,因为它不起作用):
<?xml version="1.0" encoding="UTF-8"?>
<project name="Struts2Proj" default="war">
<property name= "build.dir" value="build"/>
<property name= "src.dir" value="src"/>
<property name= "lib.home" value="WebContent/WEB-INF/lib"/>
<target name="clean" description="Clean output directories">
<delete>
<fileset dir="classes">
<include name="**/*.class"/>
</fileset>
</delete>
</target>
<target name="build" description="Compile source tree java files">
<mkdir dir="${build.dir}"/>
<javac src ="${src.dir}" destdir="${build.dir}" >
<classpath>
<path>
<fileset dir="${lib.home}" />
</path>
</classpath>
</javac>
</target>
<target name="war">
<war destfile="Struts2Project.war" webxml="WebContent/WEB-INF/web.xml">
<fileset dir="WebContent">
<include name="**/*.*"/>
</fileset>
<lib dir="${lib.home}" />
<classes dir="build/classes"/>
</war>
</target>
</project>
答案 0 :(得分:2)
问题似乎出现在build
目标中。您没有将配置文件(如struts.xml
)复制到构建路径。请参阅此ANT教程:http://ant.apache.org/manual/tutorial-HelloWorldWithAnt.html#config-files。
示例:
<target name="compile">
<mkdir dir="${classes.dir}"/>
<javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="classpath"/>
<copy todir="${classes.dir}">
<fileset dir="${src.dir}" excludes="**/*.java"/>
</copy>
</target>