前言
Apache Ant,是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发, 类似于linux下的make。由Apache软件基金会所提供。
Ant是纯Java语言编写的,所以具有很好的跨平台性。
下载安装(windows平台下)
1.ant的官方下载地址:http://ant.apache.org/bindownload.cgi
ant是开源软件,下载解压后可以直接使用
2. 配置环境变量
ANT_HOME
PATH
CLASSPATH
在命令行输入ant 出现以下结果说明安装成功
Ant简单使用
先来看一个简单例子
<?xml version="1.0" encoding="utf-8"?>
<project name="MyProject" default="dist" basedir=".">
<!-- descpription 对项目的秒速-->
<description>
simple example build file
</description>
<!-- 对项目设置全局属性,类似于变量,但不可更改 -->
<property name="src" location="src"/>
<property name="build" location="build"/>
<property name="dist" location="dist"/>
<!-- init任务名,可使用ant init来执行此任务-->
<target name="init">
<!-- Create the time stamp -->
<tstamp/>
<!--新建一个文件夹 -->
<mkdir dir="${build}"/>
</target>
<!--depends:依赖,执行compile任务前会先执行init任务-->
<target name="compile" depends="init"
description="compile the source " >
<!-- Compile the java code from srcintosrcinto{build} -->
<javac srcdir="${src}" destdir="${build}"/>
</target>
<target name="dist" depends="compile"
description="generate the distribution" >
<!-- Create the distribution directory -->
<mkdir dir="${dist}/lib"/>
<!-- Put everything in buildintotheMyProject−buildintotheMyProject−{DSTAMP}.jar file -->
<jar jarfile="dist/lib/MyProject−dist/lib/MyProject−{DSTAMP}.jar" basedir="${build}"/>
</target>
<target name="clean"
description="clean up" >
<!--删除文件-->
<delete dir="${build}"/>
<delete dir="${dist}"/>
</target>
</project>
对ant配置文件一些标签属性进行详解
target标签:使用target标签定义一些任务,使用ant targetname执行任务
<target name="init">
<mkdir dir="build"></mkdir>
</target>
在target标签中可以嵌入其他标签,如javac或java,这两个标签可用来执行java中的javac命令和java命令
<target name="compile">
<!--会编译src目录下所有的java文件-->
<javac srcdir="./src" destdir="./build"></javac>
</target>
<target name="run">
<!--指定运行的class-->
<java classname="HelloWorld">
<classpath>
<pathelement location="./build"/>
</classpath>
</java>
</target>
javac中有一个classpath属性,指定引用的包(第三方包或自定义的包)的位置
<target name="compile">
<!--会编译src目录下所有的java文件-->
<javac srcdir="./src" destdir="./build">
<classpath>
<pathelement location="./lib/xxx.jar"/>
</classpath>
</javac>
</target>
target的depends属性
depends:顾名思义就是依赖的意思,即该任务的完成依赖另一个任务的完成
<target name="init">
<!-- Create the time stamp -->
<tstamp/>
<!--新建一个文件夹 -->
<mkdir dir="${build}"/>
</target>
<!--depends:依赖,执行compile任务前会先执行init任务-->
<target name="compile" depends="init"
description="compile the source " >
<!-- Compile the java code from srcintosrcinto{build} -->
<javac srcdir="${src}" destdir="${build}"/>
</target>
当输入ant compile是会先执行init任务,在执行compile任务