本文通过一个示例来解说如何通过ant进行编译和发布项目。
本例按如下目录结构来组织项目。

D:/web/antsample项目根目录
D:/web/antsample/src源代码目录
D:/web/antsample/src/sample/HelloWorld.java示例HelloWorld代码文件
D:/web/antsample/app应用程序目录
D:/web/antsample/app/index.jsp默认首页文件
D:/web/antsample/app/WEB-INF
D:/web/antsample/app/WEB-INF/web.xml应用程序描述文件
D:/web/antsample/app/WEB-INF/lib应用程序库目录
D:/web/antsample/context.xml应用程序环境配置文件,数据源、应用程序路径(path)、文档路径(docBase)等信息在此配置。
D:/web/antsample/build.xml

build.xml 文件内容

<?xml version="1.0" encoding="UTF-8"?>
<project name="antsample" default="jar" basedir=".">
<property environment="env"/>
<echo message="Ant 版本 ${ant.java.version}"/>
<property name="tomcat.home" value="/home/xiaojf/tomcat6"/> <!-- tomcat目录 -->
<property name="web.home" value="./app"/> <!-- 应用程序目录 -->
<property name="src.home" value="./src"/> <!-- java源文件目录 -->
<property name="jarFile" value="${web.home}/WEB-INF/lib/${ant.project.name}.jar"/> <!-- jar文件位置 -->
<property name="warFile" value="./${ant.project.name}.war"/> <!-- war文件位置 -->
<property name="srcDeployFile" value="./context.xml"/> <!-- 源部署文件 -->
<property name="distDeployFile" value="${tomcat.home}/conf /Catalina/localhost/${ant.project.name}.xml"/> <!-- 源部署文件 -->
<property name="jdk1.5" value="/usr/lib/jvm/jdk1.5/bin/javac"/> <!-- 设置jdk1.5编译器的全路径 -->
<property name="jdk1.6" value="/usr/lib/jvm/jdk1.6/bin/javac"/> <!-- 设置jdk1.6编译器的全路径 -->
<property name="javaCompiler" value="${jdk1.6}"/> <!-- 编译时使用的javac -->
<!-- 设置 classpath,即编译时需要引用的库文件 -->
<path id="classpath">
<fileset dir="${web.home}/WEB-INF/lib"> <!-- 引用应用程序WEB-INF/lib下的所有jar -->
<include name="**/*.jar"/>
</fileset>
<fileset dir="${tomcat.home}/lib"> <!-- 引用Tomcat/lib下的所有jar -->
<include name="**/*.jar"/>
</fileset>
</path>
<!-- 清除已经生成的class文件 -->
<target name="clean">
<delete>
<fileset dir="${src.home}" includes="**/*.class"/>
</delete>
</target>
<!-- 编译src.home下的所有java文件。fork被设置为true,这样可指定编译使用的JDK,此处使用jdk1.5。必须根据java源文件的编码来设置encoding。 -->
<target name="compile" depends="clean">
<javac srcdir="${src.home}"
debug="on"
deprecation="on"
optimize="off"
includes="**"
includeantruntime="on"
encoding="UTF-8"
fork="yes"
executable="${javaCompiler}"
>
<classpath refid="classpath"/>
<compilerarg value="-Xlint:unchecked"/>
</javac>
</target> <!-- 打包,并将jar放置在应用程序WEB-INF/lib下。 -->
<target name="jar" depends="compile">
<jar destfile="${jarFile}"
basedir="${src.home}"
includes="**/*.class **/*.xml"/>
</target> <target name="war" depends="jar">
<war destfile="${warFile}"
basedir="${web.home}"/>
</target> <!-- 布置应用程序到Tomcat -->
<target name="deploy">
<copy file="${srcDeployFile}" tofile="${distDeployFile}"/>
</target>
<!-- 从Tomcat上卸载应用程序 -->
<target name="undeploy">
<delete file="${distDeployFile}"/>
</target>
</project>

运行本例,您必须修改build.xml中tomcat目录的全路径和context.xml中的相应信息。
进入D:/web/antsample,输入ant命令,即可编译程序,并将其生成的class文件打包成jar,布置到app/WEB-INF/lib下。
运行ant deploy 即可拷贝context.xml到Tomcat/conf/Catalina/localhost/antsample.xml,完成程序的布置。
运行ant undeploy 即可删除Tomcat/conf/Catalina/localhost/antsample.xml文件完成程序的卸载。

现在您可以输入 http://localhost:8080/antsample 来访问例子程序了。

利用ant进行编译和发布项目的更多相关文章

  1. Ant自动编译打包&发布 android项目

    Eclipse用起来虽然方便,但是编译打包android项目还是比较慢,尤其将应用打包发布到各个渠道时,用Eclipse手动打包各种渠道包就有点不切实际了,这时候我们用到Ant帮我们自动编译打包了. ...

  2. Andorid进阶7—— Ant自动编译打包&发布 android项目

    http://www.cnblogs.com/tt_mc/p/3891546.html Eclipse用起来虽然方便,但是编译打包android项目还是比较慢,尤其将应用打包发布到各个渠道时,用Ecl ...

  3. linux(以ubuntu为例)下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件

    原创,转载请注明:http://www.cnblogs.com/ycxyyzw/p/4555328.html  之前写过一篇<windows下Android利用ant自动编译.修改配置文件.批量 ...

  4. (转载)Ant自动编译打包android项目

    1  Ant自动编译打包android项目 1.1   Ant安装 ant的安装比较简单,下载ant压缩包  http://ant.apache.org  (最新的为1.9.3版本),下载之后将其解压 ...

  5. windows下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件

    原创文章,转载请注明:http://www.cnblogs.com/ycxyyzw/p/4535459.html android 程序打包成apk,如果在是命令行方式,一般都要经过如下步骤: 1.用a ...

  6. Android - Ant自动编译打包android项目 -- 1(转)

    1.  背景: Eclipse用起来虽然方便,但是编译打包android项目还是比较慢,尤其当要将应用打包发布到各个渠道时,用Eclipse手动打包各种渠道包就有点不切实际了,这时候我们用到Ant帮我 ...

  7. Ant自动编译打包android项目(转载)

      1.1   Ant安装 ant的安装比较简单,下载ant压缩包  http://ant.apache.org  (最新的为1.9.3版本),下载之后将其解压到某个目录(本人解压到E:\Progra ...

  8. ant自动编译打包android项目

    源代码及可执行文件下载地址:http://files.cnblogs.com/rainboy2010/antdemo.zip Android打包APK的流程如下:  下面我们开始尝试使用ant进行ap ...

  9. ANT自动打包U3D安卓项目研究笔记

    概述 因项目使用Atlassian Stash作为项目源码管理端,且其支持Ant命令自动编译,可使其根据最新的代码自动打包,故产生该研究Ant打包的任务.在此将研究过程及一些相关知识整理记录在此. 本 ...

随机推荐

  1. CSS介绍

    从HTML被发明开始,样式就以各种形式存在.不同的浏览器结合它们各自的样式语言为用户提供页面效果的控制.最初的HTML只包含很少的显示属性. 随着HTML的成长,为了满足页面设计者的要求,HTML添加 ...

  2. 我所理解的设计模式(C++实现)——中介者模式(Mediator Pattern)

    概述: 假设我们开发一个图片处理软件,里面肯定包括很多相关功能,比如说剪切,旋转,滤镜,美化等等,而我们这些功能所要处理的对象是固定的,就是我们所显示的那张图片.但是我们不能把所有的功能罗列到一个ta ...

  3. java.lang.OutOfMemoryError: Java heap space错误及处理办法

      以下是从网上找到的关于堆空间溢出的错误解决办法: java.lang.OutOfMemoryError: Java heap space ============================= ...

  4. 普通用户登录PLSQL后提示空白OK对话框错误

    问题描述: 1.普通域账号登录域成员服务器后,打开PLSQL正常,输入用户名密码登录后提示一个空白的OK对话框,点确定后又返回到输入用户密码界面. 2.在CMD窗口下调用SQLPLUS登录数据库时报如 ...

  5. javascript监听事件兼容

    function addEvent(el ,type ,fn){ if(el.addEventListener){ el.addEventListener(type,fn,false); }else ...

  6. Java的Object对象

    Object对象是除了基础对象之外,所有的对象都需要继承的父对象,包括数组也继承了Object Object里面的关键函数罗列如下: clone();调用该函数需要实现 Cloneable,否则会抛出 ...

  7. Android开发_关于中英文切换

    开发APP过程中可能要有中文模式和英文模式,切换后控件要随着进行更改,以下代码可以很好的实现: public static int getResourcesId(Context context, St ...

  8. java Math.random()随机数的产生

    Math.random()是java内置产生随机数的函数,Math.random()能够产生[0,1)的浮点数,当我们要产生特定范围的数时,可以采用如下办法: 1.Math.random()*(最大数 ...

  9. mac中遇到的mysql编码问题

    由于项目有需要支持表情包输入数据库,自己做了一下技术测试,修改了my.cnf的权限为777.结果就操蛋了.编码错误.... 直到我无意地输入mysql -h,提示我/etc/my.cnf被忽略的一段话 ...

  10. Spring 之 注解实现返回json

    下面的部分位于Spring-mvc.xml或者dispatcherServlet-servlet.xml中 (Spring 3.0中ServletName-servlet.xml替代了Spring-m ...