概述

本文通过一个简单的Web项目作为例子描述如何用ANT完成Web前台程序的打包工作。包含文件拷贝、编译、打包三部分;完成这三部就可以得到一个War了,放到Tomcat下就可以运行了。

ANT的安装,环境变量的设置等省略。网上有很多文章。

准备工作

先创建一个简单的Web程序,这个程序通过一个简单的网页(index.html)显示”Hello ANT!!!”。程序依赖于第三方Jar包GSON。基本的程序结构是这样的:

ant脚本build.xml放到tools/build目录下,打包编译生成的war包都放runtime下面。

编写build.xml文件

<?xml version="1.0" encoding="utf-8" ?>
<project name="WebAntTest" default="create_war" basedir="../../">
    <!--定义当前时间-->
    <tstamp>
        <format property="current_date" pattern="yyyy_MM_dd_HH_mm_ss" locale="en"></format>
    </tstamp>

    <!--定义依赖jar包的路径-->
    <path id="depend_lib_path">
        <fileset dir="WebContent\WEB-INF\lib">
            <include name="*.jar"></include>
        </fileset>
    </path>

    <!--删除旧的打包文件(含war包和编译文件)-->
    <target name="clean">
        <delete verbose="true" includeemptydirs="true">
            <fileset dir="build">
                <include name="**/*"/>
            </fileset>
        </delete>
        <delete verbose="true" includeemptydirs="true">
            <fileset dir="runtime">
                <include name="**/*"/>
            </fileset>
        </delete>
    </target>

    <!--编译生成class文件-->
    <target name="compile" depends="clean">
        <javac srcdir="src" destdir="build" includeantruntime="on">
            <classpath refid="depend_lib_path"></classpath>
        </javac>
    </target>

    <!--打war包-->
    <target name="create_war" depends="compile">
        <war destfile="runtime/AntWeb.war" webxml="WebContent/WEB-INF/web.xml">
            <fileset dir="WebContent">
                <exclude name="**.jar"/>
                <exclude name="**.class"/>
            </fileset>
            <lib dir="WebContent\WEB-INF\lib"></lib>
            <classes dir="build"/>
        </war>
    </target>
</project>

测试运行

将当前路径切换到tools/build目录下,执行ant命令完成打包操作, 在runtime目录下生成了一个war包:

打包过程:

为了将打包做成定时任务,还可以加一个批处理build.bat:

::启动打包程序
cd /d %cd%

start "开始打包程序..." ant。

发布War包

将打包的war文件放到tomcat的webApps下,运行Tomcat。通过网页访问,可以正常显示。

使用Ant打包Web前台程序的更多相关文章

  1. 使用Ant打包Java后台程序

    概述 本文通过一个简单的Java Application例子描述如何用ANT完成基本的程序打包工作.包含文件拷贝.编译.打包三部分:完成这三部就可以得到一个可运行的程序包了. ANT的安装,环境变量的 ...

  2. 不会用ant打包、部署项目的工程师,不是一个好程序员(测试)

    副标题:利用ant脚本 自动构建svn增量/全量 系统程序升级包 首先请允许我这样说,作为开发或测试,你一定要具备这种本领.你可以手动打包.部署你的工程,但这不是最好的方法.最好的方式就是全自动化的方 ...

  3. 使用IzPack打包JAVA Web应用程序

    使用IzPack打包JAVA Web应用程序步骤如下: 这里使用IzPack-4.3.5 + launch4j-3.1.0-beta1-win32.zip(绿色版)对Web应用程序打包,打包后即可对我 ...

  4. (转)使用 Advanced Installer 打包 一键安装Web应用程序

      使用 Advanced Installer 打包 一键安装Web应用程序         安装预览: 资源下载: 示例安装包 操作流程: 1.新建Asp.net Application. 2.设置 ...

  5. 使用 Advanced Installer 打包 一键安装Web应用程序

    原文:使用 Advanced Installer 打包 一键安装Web应用程序 安装预览: 资源下载: 示例安装包 操作流程: 1.新建Asp.net Application. 2.设置应用程序名称和 ...

  6. ant:如何用ant将web project打包成war包

    说明:src中的文件将不会呈现出来,诸位可以自己写一个简单的web项目,然后依照我所提供的ant脚本配置来设置. 文件结构如图所示:               配置为下: build.xml < ...

  7. 【转】如何使用PhoneGap打包Web App

    如何使用PhoneGap打包Web App 最近做了一款小游戏,定位是移动端访问,思来想去最后选择了jQuery mobile最为框架,制作差不多以后,是否可以打包成App,恰好以前对PhoneGap ...

  8. MyEclipse使用Ant打包项目

    本章主要介绍如何使用ant打包发布项目. ant 是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发.在实际软件开发中,有很多地方可以用到ant. 优点 ...

  9. Spring学习(五)--构建Spring Web应用程序

    一.Spring MVC起步 看过猫和老鼠的小伙伴都可以想象Tom猫所制作的捕鼠器:它的目标 是发送一个小钢球,让它经过一系列稀奇古怪的装置,最后触发捕鼠 器.小钢球穿过各种复杂的配件,从一个斜坡上滚 ...

随机推荐

  1. 【剑指offer28:字符串的排列】【java】

    题目:输入一个字符串,按字典序打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba. import ja ...

  2. mongodb 配置均衡器的运行窗口

    当系统的数据量增长不是太快的时候,考虑到数据迁移会降低系统性能,可以配置均衡器在只在特定时间段运行.详细的配置步骤如下: 连接到任意的mongos服务器,并通过安全认证(如果有认证的话). 切换到co ...

  3. shell 颜色控制系列

    shell脚本里,经常用的颜色控制,如下 格式:echo -e "\033[字背景颜色:文字颜色m字符串\033[0m" eg:echo -e "\033[41;36m ...

  4. Java集合框架(五)—— Map、HashMap、Hashtable、Properties、SortedMap、TreeMap、WeakHashMap、IdentityHashMap、EnumMap

    Map Map用于保存具有映射关系的数据,因此Map集合里保存着两组值,一组值用于保存Map里的key,另一组值用于保存Map里的value,key和value都可以是任何引用类型的数据.Map的ke ...

  5. 剑指offer第一天

    15.反转链表 输入一个链表,反转链表后,输出链表的所有元素. 解法一:(使用栈) /* public class ListNode { int val; ListNode next = null; ...

  6. Ceph神坑系列

    1. 在使用librbd的过程中,发现一个如果ceph集群异常librbd函数不返回的问题,对librbd的源码进行跟踪,发现了rados接口中的rados_mon_op_timeout(how ma ...

  7. C++学习笔记第一天:基础

    前言 N年前学的C,经过VB.JAVA.JS.C#等后辈的轮番蹂躏,当初学的那点儿东西早就还给老师了 现在有了在桌面端实现 Native + Web 的初衷,需要利用CEF开源组件来封装这个Nativ ...

  8. 对ios、android开发程序员的14条忠告

    ————————本文摘自千锋教育(http://www.mobiletrain.org/)对ios\android开发程序员的14条忠告————————— 1.不要害怕在工作中学习. 只要有电脑,就可 ...

  9. javascript-深入理解&&和||

    先从两个问题看起: 第一个问题 为什么 a && b 返回的是true,b && a 返回的是6 var user = 6; var both = true; cons ...

  10. CSS注释

    CSS注释 1./*注释内容*/ /*-moz-background-origin:border; -webkit-background-origin:border; -moz-background- ...