Ant,是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。由Apache软件基金会所提供。
Ant 的优点:
下载Ant:
Apache官网 : http://ant.apache.org/
点击 Download 下的 Binary Distributions 就可以看到下载列表了
Windows下就不演示了
我们在Linux下进行下载,复制链接地址
wget 从网络下载一个文件 wget+url
wget http://mirrors.hust.edu.cn/apache//ant/binaries/apache-ant-1.10.0-bin.tar.gz
下载之后解压
配置环境变量(跟配置java差不多)
#2017-1-19
#ANT
export ANT_HOME=/root/apache-ant-1.10.0
export PATH=.:$ANT_HOME/bin:$PATH
重启配置
source /etc/profile
测试
ant –version 查看版本信息
ant clean 清理命令
ant run 运行命令
ant compile 编译命令
ant build 生成jar包
每个构建文件对应一个项目。<project>标签是构建文件的根标签。它可以有多个内在属性, 就如代码中所示,其各个属性的含义分别如下。
每个构建文件都对应于一个项目,但是大型项目经常包含大量的子项目,每一个子项目都可以有自己的构建文件。
一个项目标签下可以有一个或多个target标签。一个target标签可以依赖其他的target
标签。例 如,有一个target用于编译程序,另一个target用于生成可执行文件。
在生成可执行文件之前必须先编译该文件,因此可执行文件的target依赖于编译程序
的target。Target的所有属性如下。
Ant会依照depends属性中target出现顺序,依次执行 每个target。在执行之前,首先需要执行它所依赖的target。程序中的名为run的target的 depends属性compile,而名为compile的target的depends属性是prepare,所以这几个target执 行的顺序是prepare->compile->run。一个target只能被执行一次,即使有多个target依赖于它。如果没有if或 unless属性target总 会被执行。
该标签用于创建一个目录,它有一个属性dir用来指定所创建的目录名,其代码如下:
${class.root}”/>
通过以上代码就创建了一个目录,这个目录已经被前面的property标签所指定。
该标签用来生成一个JAR文件,其属性如下。
该标签用于编译一个或一组java文件,其属性如下。
该标签用来执行编译生成的.class文件,其属性如下。
该标签用于删除一个文件或一组文件,去属性如下。
该标签用于文件或文件集的拷贝,其属性如下。
<exec>
"${base.dir}/email.bat" >
exec>
Linux下创建一个项目
Hello 项目根目录
src/ 一级文件夹目录
com/ 二级包目录
lingdu/ 三级包目录
Hello.java 存放的java类文件
build.xml ant配置文件
项目就是一个文件夹,然后放了一堆文件
package com.lingdu;
public class Hello {
public static void main(String[] args) {
System.out.println("Hello!");
}
}
如果按照平时我们的习惯,会先使用javac编译文件,然后用java运行
那我们能不能把这样的重复工作放到一个命令下呢?答案是可以的。
<project name="Hello" basedir=".">
<property name="src" value="src"/>
<property name="dest" value="classes"/>
<target name="init">
<mkdir dir="${dest}"/>
target>
project>
保存运行
ant init (“init是自己定义的名字”)
使用ls查看一下确实创建了 classes
<target name="del">
<delete dir="${dest}"/>
target>
接下来我们继续配置build.xml
<target name="compile" depends="init">
<javac srcdir="${src}" destdir="${dest}" includeantruntime="on"/>
target>
保存运行
然后到classes目录下查看一下,确实生成了.class文件
<target name="runfile" depends="del,compile">
<java classname="com.lingdu.Hello" classpath="${dest}"/>
target>
<target name="jar" depends="compile">
<jar jarfile="${jarfile}" basedir="${dest}"/>
target>
<target name="runjar" depends="jar">
<java classname="com.lingdu.Hello" classpath="${jarfile}"/>
target>
<target name="deljar" depends="runjar">
<delete dir="${dest}"/>
<delete file="${jarfile}"/>
target>