使用Ant构建简单项目
Apache Ant主要用于Java项目的构建。为什么要使用Ant:
1)项目构建不是简单的编译,各种资源需要合理构建,例如有的类需要压缩成jar文件,有的文件需要放在指定位置,有时候需要使用配置文件。这些工作是繁杂琐碎的,手工处理难免出错。
2)诸如Myeclipse之类的IDE工具可以方便地部署web项目,但是脱离了这些集成工具,例如在需要部署项目的机器上没有这种集成工具,或者目标机器的操作系统不支持这种工具,怎么办?这时ant是很好的工具。
现在以一个简单的Java项目为例来说明ant的项目构建过程(项目名称DateDemo,其中src文件夹中包含源文件DateDemo.java):
第一步:ant的安装配置。下载地址http://archive.apache.org/dist/,下载文件名ant-current-bin.zip,解压缩后路径为D:/Program Files/apache-ant-1.7.1。配置用户变量名ANT-HOME,其value是
Ant解压后的放置路径D:/Program Files/apache-ant-1.7.1;配置系统变量Path,添加Ant的bin文件夹路径D:/Program Files/apache-ant-1.7.1/bin。此外,还要检查JAVA_HOME是否准确配置为jdk的路径的。
第二步:构建build.xml,这是ant的任务描述文件。在这个脚本中描述构建任务,ant就可以根据这个文件完成构建工程的任务。
<?xml version="1.0" encoding="UTF-8"?>
<project name="DateDemo" default="run" basedir=".">
<property name="src" value="src" />
<property name="dest" value="build/classes" />
<property name="lib" value="build/lib" />
<property name="np_jar" value="build/lib/DateDemo.jar" />
<target name="init">
<mkdir dir="${dest}" />
<mkdir dir="${lib}" />
</target>
<target name="compile">
<javac srcdir="${src}" destdir="${dest}" />
</target>
<target name="build">
<jar destfile="${np_jar}" basedir="${dest}">
<manifest>
<attribute name="Main-Class" value="DateDemo" />
</manifest>
</jar>
</target>
<target name="run">
<java classname="DateDemo" classpath="${np_jar}" />
</target>
<target name="clean">
<delete file="${np_jar}" />
<delete dir="${dest}" />
<delete dir="${lib}" />
</target>
</project>
代码解释:Ant脚本使用XML描述的。project结点是根节点,name是工程名称,basedir是工程根目录,“.”代表当前目录,default代表默认任务。<property name="src" value="src"/>定义了名称为"src"的属性,在整个XML文档中,都可以通过"${src}" 来调用这个属性值。下面通过target标签定义了ant相应的任务:init---初始化,创建目录,为后面的构建工作做准备;compile---编译;buil---生成jar文件;run---执行;clean---清除构建动作生成的文件及目录。这些工作都可以根据名称调用。
第三步:把上面的build.xml脚本放在DateDemo工程根目录下,此时工程目录结构如下:
----build.xml(ant脚本)
----src(源代码文件夹)
第四步:工程构建。进入DOS,把当前路径切换到DateDemo工程目录下,然后运行任务指令:
ant init:执行完后,将在项目下创建一个build/classes目录和build/lib目录
ant compile:ant会把制定目录中的源文件全部编译,并且把编译得到的类文件放在build/classes下
ant build:执行完后,ant会在build/lib下生成项目对应的jar文件
ant run:运行这个项目。
结果:

通过修改ant脚本,可以实现项目的自动构建,不需要那么多步骤,如下:
<?xml version="1.0" encoding="UTF-8"?>
<project name="DateDemo" default="run" basedir=".">
<property name="src" value="src" />
<property name="dest" value="build/classes" />
<property name="lib" value="build/lib" />
<property name="np_jar" value="build/lib/DateDemo.jar" />
<target name="init">
<mkdir dir="${dest}" />
<mkdir dir="${lib}" />
</target>
<target name="compile" depends="init">
<javac srcdir="${src}" destdir="${dest}" />
</target>
<target name="build" depends="compile">
<jar destfile="${np_jar}" basedir="${dest}">
<manifest>
<attribute name="Main-Class" value="DateDemo" />
</manifest>
</jar>
</target>
<target name="run" depends="build">
<java classname="DateDemo" classpath="${np_jar}" />
</target>
<target name="clean">
<delete file="${np_jar}" />
<delete dir="${dest}" />
<delete dir="${lib}" />
</target>
</project>
在上面这个脚本中,定义了各个target之间的依赖关系(depends=""),直接执行"ant”命令就可以执行完所有步骤。因为在没有指明执行哪个target的时候,project中default指明了默认执行的是run,然后ant检测到运行run这个target的depends=build,所以先去运行build,继续向上检测,可以检测到init任务,从而开始执行整个ant脚本。
使用Ant构建简单项目的更多相关文章
- Ant—使用Ant构建简单Java项目(三)
博客<Ant-使用Ant构建简单Java项目(二)>我们简化了运行Test类中main方法须要运行的命令,本博客来介绍一下如何使build.xml文件和当中使用property标签定义的属 ...
- springboot学习之构建简单项目搭建
概述 相信对于Java开发者而言,spring和springMvc两个框架一定不陌生,这两个框架需要我们手动配置的地方非常多,各种的xml文件,properties文件,构建一个项目还是挺复杂的,在这 ...
- 用Ant实现Java项目的自动构建和部署
原文地址:http://tech.it168.com/j/2007-11-09/200711091344781.shtml 本文请勿转载! Ant是一个Apache基金会下的跨平台的构 ...
- 使用 Ant 自动生成项目构建版本
引言 对 于多版本项目,要提供新版本来跟上新功能或缺陷报告增加的速度,并同时仍然保持可接受的质量水平,可能是一项不小的挑战.构建自动化可确保准确性和消除人 为错误的可能性,从而部分地解决此问题.自动化 ...
- Android应用开发高效工具集1---ant构建简单Android项目
本文转载于:http://blog.csdn.net/lincyang/article/details/40950153 在java编译那些事儿中提到了用ant去编译Java项目,今天扩展到用它来构建 ...
- 用Ant实现Java项目的自动构建和部署(转)
Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能.在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作. 一. ...
- Ant构建和部署项目(转)
原文地址: http://www.blogjava.net/amigoxie/archive/2007/11/09/159413.html Ant是一个Apache基金会下的跨平台的构件工具,它可以实 ...
- 用Ant实现Java项目的自动构建和部署(转)
Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能.在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作. 一. ...
- Ant构建与部署Java项目---入门
原文地址:http://tech.it168.com/j/2007-11-09/200711091344781.shtml Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建 ...
随机推荐
- Android自复制传播APP原理学习(翻译)
Android自复制传播APP原理学习(翻译) 1 背景介绍 论文链接:http://arxiv.org/abs/1511.00444 项目地址:https://github.com/Tribler ...
- CAN帧格式(标准帧、拓展帧)
CAN2.0B标准帧 CAN 标准帧信息为11个字节,包括两部分:信息和数据部分.前3个字节为信息部分. 位置 7 6 5 4 3 2 1 0 字节01 FF RTR × × DLC(数据长度) 字节 ...
- Hibernate中用注解配置一对多双向关联和多对一单向关联
Hibernate中用注解配置一对多双向关联和多对一单向关联 Hibernate提供了Hibernate Annotations扩展包,使用注解完成映射.在Hibernate3.3之前,需单独下载注解 ...
- 培训补坑(day1:最短路&two-sat)
经过12天的滚粗,终于迎来了暑期培训的结尾啦QAQ 结业考才考了90分,真是对不起孙爷(孙爷请收下我的膝盖) orz小粉兔怒D rank 1 获得小粉兔一只QAQ 由于这次12天的培训题目又比较多,算 ...
- linux反汇编
使用objdump参数可以: -a, --archive-headers 显示压缩头信息 -f, --file-headers 显示目录头总览 -p, --private-h ...
- undefined reference to XXX 问题原因
原文地址:http://blog.csdn.net/cserchen/article/details/5503556 Linux下编译程序时,经常会遇到“undefined reference to ...
- 使用VMware 管理服务器
使用VMware 管理服务器 实验室有一台浪潮服务器.师兄只留下了开机用户名和密码,和一个VMware vSphere Client的安装包,就把它托付给了我.就是这样一个方方正正的长方体,只提供了接 ...
- RobotFramework自动化3-搜索案例【转载】
本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/robotframework/ 前言 RF系列主要以案例为主,关键字不会的可以多按按F5 ...
- 读取EXCEL的办法
private void button9_Click(object sender, EventArgs e) { var folder =new FolderBrowserDialog(); if ( ...
- 在C#中调用格式工厂进行任意视频格式到FLV的转换
1.下载安装格式工厂和完美解码器 2.运行格式工厂,转换一个RMVB到FLV,注意找个大点的,使时间长一些.防止在未执行步骤3时就结束了 3.在进程中查看某个进程的命令行参数是什么? wmic pro ...