一、概述
ant 是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。在实际软件开发中,有很多地方可以用到ant。
开发环境:
二、优点
ant 是Apache软件基金会JAKARTA目录中的一个子项目,它有以下的优点:
1、跨平台性:Ant是纯Java语言编写的,所以具有很好的跨平台性。
2、操作简单:Ant是由一个内置任务和可选任务组成的,用ant任务就像是在dos中写命令行一样。Ant运行时需要一个XML文件(构建文件)。 Ant通过调用target树,就可以执行各种task。每个task实现了特定接口对象。
3、维护简单、可读性好、集成简单:由于Ant构建文件 时XML格式的文件,所以很容易维护和书写,而且结构很清晰。Ant可以集成到开发环境中。由于Ant的跨平台性和操作简单的特点,它很容易集成到一些开发环境中去。
三、安装和配置
1、下载ant,http://ant.apache.org/
2、解压zip压缩包,将压缩包放置你要放置的目录。我这里放置在D:apache-ant-1.10.5,目录结构如下:
bin是ant的程序运行入口,如果没有配置ANT_HOME的情况下,可以通过bin目录中的bat程序进行运行build任务。
如:在cmd中运行ant.bat就可以执行程序,当然你选择要当前目录中存在一个build.xml(build.xml是默认的ant执行文件,当然你可以指定其他文件)
etc目录中存放的都是一些xsl的输出模板,创建一个加强的导出各种任务的XML输出,使你的build文件摆脱过时的警告
lib目录中存放的是ant程序需要依赖的jar包
manual目录是ant程序的帮助文档
3、在我的电脑 –> 右键属性 –> 高级系统配置 -> 环境变量 中配置ant
新建系统变量 ANT_HOME = D:apache-ant-1.10.5
然后在Path路径新增变量:
配置完后输入:
则ant配置成功。
以上只是说明如何安装配置ant,接下来实际说明下,在具体的开发中如何使用ant进行项目的编译与运行。
四、开发使用
1、新增一个antTest的java工程,编写一个类AntTest:
package com.fjnx.cn; public class AntTest { public static void main(String[] args) { System.out.println("HelloWorld,I am complied by Ant"); } }
2、在根目录下新增一个build.xml文件,文件内容如下:
<?xml version="1.0" encoding="UTF-8" ?> <project name="antTest" default="run" basedir="."> <property name="src" value="src"/> <property name="dest" value="classes"/> <property name="helloant_jar" value="ant.jar"/> <target name="init"> <mkdir dir="${dest}"/> </target> <target name="compile" depends="init"> <javac srcdir="${src}" destdir="${dest}" includeantruntime="on"/> </target> <target name="build" depends="compile"> <jar jarfile="${helloant_jar}" basedir="${dest}"/> </target> <target name="run" depends="build"> <java classname="com.fjnx.cn.AntTest" classpath="${helloant_jar}"/> </target> <target name="clean"> <delete dir="${dest}" /> <delete file="${helloant_jar}" /> </target> <target name="rerun" depends="clean,run"> <ant target="clean" /> <ant target="run" /> </target> </project>
目录如图所示:
右键点击build.xml 运行ant
当控制台输出以下信息:
出来BUILD SUCCESSFUL 和预期结果说明ant跑成功了。有可能会提示 includeantruntime 警告,这个时候在bulid.xml里头将以下设置下就好了:
<target name="compile" depends="init"> <javac srcdir="${src}" destdir="${dest}" includeantruntime="on" /> </target>
相关的build.xml语法可以参考文章:https://blog.csdn.net/mevicky/article/details/72828554