使用Ant for Web Application构建WAR文件

时间:2014-03-24 09:14:56

标签: eclipse tomcat ant

我在eclipse中创建了示例/默认测试Web项目。

然后我使用Ant来构建和部署。我导出默认的build.xml。但是这个蚂蚁没有创建战争文件的任务。所以,我必须写出创造战争的任务。

我使用下面的代码。

<property name="app" value="TestAntWar"/> 
<property name="tomcatWebApps" value="C:/Apps/Apache/Jakarta/Tomcat/tomcat-6/webapps" />
......
<target name="buildwar" description="create a war file">
    <war basedir="${basedir}/build" destfile="${app}.war"
         webxml="${basedir}/WebContent/WEB-INF/web.xml">
          <fileset dir="WebContent"/>
            <exclude name="WEB-INF/**" />
                <lib dir="WebContent/WEB-INF/lib"/>
                <lib dir="lib"/>
                <classes dir="build/classes"/>
                <classes dir="config"/>
        <webinf dir="${basedir}/WebContent/WEB-INF/">
            <include name="**/*.jar" />
        </webinf>
    </war> 
</target>
<target name="deploy" depends="buildwar" description="Deploy this in apache webapps">
    <copy file="${app}.war" todir="${tomcatWebApps}" />
</target>

当我在webapps中复制并粘贴生成的战争时。启动Tomcat服务器后,我发现这场战争已经腐败。 War文件只是1KB文件,包含web.xml和manifest.mf。

我想知道:

  1. WAR文件包含哪些内容及其目录结构?什么是可选和必需的文件/文件夹?
  2. 通过Ant build.xml创建和进行战争的任务语法
  3. 我阅读了答案answer1answer2,但在我的项目中没有帮助。

1 个答案:

答案 0 :(得分:2)

您的WAR文件看起来不合适。

  1. 内容和web.xml应位于根目录。
  2. WEB-INF位于根目录。
  3. 。WEB-INF / classes中的.class文件
  4. WEB-INF / lib 中的
  5. .jar文件