2012-12-01 45 views
0

我遇到了使用ANT的build.xml为Struts2正确生成war文件的问题。使用ANT构建Struts2的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> 

回答

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>