使用ANT错误为Struts2构建war文件

时间:2012-12-01 07:05:25

标签: ant struts2 build.xml

我在使用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>

1 个答案:

答案 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>