2012-12-01 44 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>