Apache Ant是一个Apache Software Foundation下的开源项目,是一个用Java开发的Java库和命令行工具。Ant最主要的用途是用于Java应用的构建,同时也支持Java以外的应用构建,比如C或者C++应用程序的构建。Apache Ant支持很多内建的任务比如编译、组装、测试和运行应用程序。
Apache Ant的概要信息如下表所示:
项目 说明 官网 https://ant.apache.org/ 开源/闭源 开源 源码管理地址 https://ant.apache.org/antlibs/srcdownload.cgi License类别 Apache License 2.0 开发语言 Java 当前稳定版本 1.10.7 (2019/9/5) Apache Ant 功能特性Apache Ant最初是Tomcat的一部分,在2000年独立出来发布了最初的版本,而Apache Maven在2004年出现,Gradle在2007年出现。所以在Maven和Gradle出现之前已经在Java应用构建中得到了广泛使用。Apache Ant相较于后来出现的构建工具,整体有如下特点:
- 不直接提供依赖管理的支持
- 没有约定的阶段和目录等信息
- 支持非Java的应用构建
- 使用XML作为构建的配置文件,缺省构建文件名称为build.xml
- 可结合Apache Ivy子项目进行依赖管理
- 不预设使用约定,可灵活地支持用户的各种基于目标和任务拆分的定制化需求
- …
Apache Ant可以使用多种方式进行安装,比如源码编译安装方式或者直接下载二进制文件进行设置。这里直接使用二进制文件下载方式安装目前的稳定版本1.10.7。
事前准备Apache Ant需要JDK的支持,最低版本需要是Java 8,本文示例的安装环境如下:
liumiaocn:~ liumiao$ sw_vers ProductName: Mac OS X ProductVersion: 10.14 BuildVersion: 18A391 liumiaocn:~ liumiao$ liumiaocn:~ liumiao$ java -version java version "1.8.0_191" Java(TM) SE Runtime Environment (build 1.8.0_191-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode) liumiaocn:~ liumiao$
Apache Ant其他各版本所需要的JDK的版本支持如下所示
Ant版本 所需要的JDK版本 Ant 1.10.* JDK 1.8 及以上 Ant 1.9.* JDK 1.5 及以上 Ant 1.8.* JDK 1.4 及以上 Ant 1.7.* JDK 1.3 及以上 Ant 1.6.* JDK 1.2 及以上 Ant 1.2 至 Ant 1.5.* JDK 1.1 及以上 Step 1: 下载二进制文件- 二进制文件下载地址列表:https://ant.apache.org/bindownload.cgi
- Apache Ant 1.10.7的tar.gz二进制文件压缩包下载地址:http://mirrors.tuna.tsinghua.edu.cn/apache//ant/binaries/apache-ant-1.10.7-bin.tar.gz
下载命令:wget http://mirrors.tuna.tsinghua.edu.cn/apache//ant/binaries/apache-ant-1.10.7-bin.tar.gz
Step 2: 解压并设定环境变量创建/usr/local/ant目录,并将下载的二进制文件压缩包进行解压
liumiaocn:ant root# pwd /usr/local/ant liumiaocn:ant root# ls apache-ant-1.10.7-bin.tar.gz liumiaocn:ant root# tar xvpf apache-ant-1.10.7-bin.tar.gz x apache-ant-1.10.7/bin/ant ...省略
在个人用户的设定文件中做如下环境变量的设定(JAVA_HOME已经设定)
liumiaocn:~ liumiao$ tail -n2 .bash_profile export ANT_HOME=/usr/local/ant/apache-ant-1.10.7 export PATH=$PATH:${ANT_HOME}/bin liumiaocn:~ liumiao$
实际上在ant命令执行的文件中已经有对于ANT_HOME设定还是未设定的各种考虑
liumiaocn:ant liumiao$ grep ANT_HOME /usr/local/ant/apache-ant-1.10.7/bin/ant # load system-wide ant configuration (ONLY if ANT_HOME has NOT been set) if [ -z "$ANT_HOME" -o "$ANT_HOME" = "/usr/share/ant" ]; then if [ -z "$ANT_HOME" -o ! -d "$ANT_HOME" ]; then ANT_HOME=`dirname "$PRG"`/.. ANT_HOME=`cd "$ANT_HOME" > /dev/null && pwd` [ -n "$ANT_HOME" ] && ANT_HOME=`cygpath --unix "$ANT_HOME"` [ -n "$ANT_HOME" ] && ANT_HOME="`(cd "$ANT_HOME"; pwd)`" ANT_LIB="${ANT_HOME}/lib" # used, libraries linked in ANT_HOME/lib will also be included, but this [ -n "$ANT_HOME" ] && ANT_HOME=`cygpath --$format "$ANT_HOME"` case "$ANT_HOME" in ANT_HOME="$ANT_HOME\\" ant_exec_command="exec \"\$JAVACMD\" $ANT_OPTS -classpath \"\$LOCALCLASSPATH\" -Dant.home=\"\$ANT_HOME\" -Dant.library.dir=\"\$ANT_LIB\" $ant_sys_opts org.apache.tools.ant.launch.Launcher $ANT_ARGS -cp \"\$CLASSPATH\"" liumiaocn:ant liumiao$Step 3: 版本确认
然后就可以使用ant进行版本确认了
liumiaocn:~ liumiao$ which ant /usr/local/ant/apache-ant-1.10.7/bin/ant liumiaocn:~ liumiao$ ant -version Apache Ant(TM) version 1.10.7 compiled on September 1 2019 liumiaocn:~ liumiao$
目录结构如下所示:
liumiaocn:apache-ant-1.10.7 liumiao$ tree -d . ├── bin ├── etc │ └── checkstyle ├── lib └── manual ├── Integration ...省略 100 directories liumiaocn:apache-ant-1.10.7 liumiao$
其中bin目录下保存命令行应用程序ant,lib下则保存Java的一些库。