Ant笔记1:Ant介绍和入门
# 在介绍Ant之前
前面我们介绍了构建的概念,现在我们来介绍下一个简单的构建工具
# Ant是什么
Ant 是由 James Duncan Davidson 詹姆斯·邓肯·戴维森开发的(也就是 Tomcat 最初的开发者),他实际为这个工具起的名字是another neat tool(另一个整洁的工具),ANT实际是各个单词首字母的缩写。最初是用来构建 Tomcat,被作为一个 Tomcat 的发行版的一部分。
Ant的第一个版本1.1
于2000年7月19日,作为一个独立的项目发布。
Ant 是Apache软件基金会的一个子项目,是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发,也可用于构建用C++编写的非Java应用程序。
从理论上讲,Apache Ant是一种基于Java的,将软件工程的编译、测试、部署等步骤联系在一起并加以自动化的构建(build)工具。它与make工具有几分相似,但又没有make工具所具有的缺陷。这段话摘录于Ant的英文使用手册,是Apache自己对Ant的概括。
引自:ANT十年手记分享——深入浅出 ANT(1) - 知乎 (opens new window)
如果你有过在Linux、Unix等操作系统中编写C或C++程序的经历,那么你一定不会对make工具感到陌生,在那种环境下我们必须在可读性较差的makefile文件中配置对构建的描述。其中作者最讨厌的事莫过于makefile文件中的tab与空格的问题,有时仅仅只是makefile作了小小的修改,也很有必要检查一遍修改的信息之前有没有空格符号以免影响后面的运行。如果不注意检查,有时候错误信息真的让人不知所云。当然,像这样烦人的问题还有很多,这就不一一列举了。
您有可能会说,我们可以使用其他的现有工具,如:gnumake、nmake、jam等等,大可不必为这些小事来大动干戈的开发一个新的构建工具。当然其中有一些工具避免了一些问题,但是又面临可读性差,扩展性不好,帮助文档不全,学习难度大,跨平台问题等等。
Ant的开发者曾经在多种(硬件)平台上进行软件开发,他正是因为无法忍受这些工具的限制和不便,进而产生了编写一个新的、简洁易用的构建工具——Ant。
它有以下的优点(了解即可,看不懂也没关系):
- 开源
- 跨平台性:Ant是纯Java语言编写的,所以具有很好的跨平台性。
- 操作简单、扩展性强:Ant是由一个内置任务和可选任务组成的,用ant任务就像是在dos中写命令行一样。Ant运行时需要一个XML文件(构建文件)。 Ant通过调用target树,就可以执行各种task。每个task实现了特定接口对象。而Make是基于OS的。
- 维护简单、可读性好、集成简单:由于Ant构建文件 时XML格式的文件,语法简单,所以很容易维护和书写,而且结构很清晰。Ant可以集成到开发环境中。由于Ant的跨平台性和操作简单的特点,它很容易集成到一些开发环境中去。
- 可伸缩:Ant内置了对J2EE开发的支持,例如EJB编译和打包。 它可以用于小型个人项目,也可以用于大型软件项目。
- 其他:高性能,广大的社区,向后兼容性,可扩展的架构
以上所举的种种好处再加上当前已经有相当多的优秀的IDE开发工具对Ant提供了支持,使得编写Ant文件的工作变得更加轻松,很好的避免了其他构建工具所具有的缺陷。正是由于Ant的其灵活性和易用性,很快Ant率先在 Java开发人员中流行开来。
# Ant有必要学习吗
Ant在一些古老的项目中有使用,例如笔者就是在银行里因项目有用到才简单学习了下;
另外,Ant目前还是有用武之地的,例如Tomcat就是用Ant构建的。通过学习Ant,也能进一步理解构建的概念;
另外,本系列的Ant教程都很简短,即使加上实践,笔者预计也就花个1,2天的功夫,简单入门和了解下是不亏的。
# Ant怎么学
实践出真知,对于一些基本的使用我会给出单独的案例用于演示,请读者们务必自行完成。
本系列只是简单入门,并不会太过深入,因为如今有很多更流行的构建工具,例如Maven和Gradle
目前网上已经不少Ant教程了,但对于笔者这个第一次接触的人还是有点难,很多都是讲理论,没有实践,难以真正掌握。
我们先从命令行开始运行Ant,然后和IDE集成。
# 安装Ant
前提条件:需要安装好Java。Ant是用Java编写的,需要JVM来构建Java项目。
官网下载Ant:Apache Ant - Welcome (opens new window) ,Ant是可以在各种平台下运行的,要注意下载对应的操作系统版本。这里以Windows为例。
如果读者使用的Java版本较低,Ant也提供了对应的版本,请读者自行去官网下载对应版本。
Ant版本 | 最低Java版本 |
---|---|
1.1 ~ 1.5.4 | 1.1 |
1.6.0 ~ 1.6.5 | 1.2 |
1.7.0 ~ 1.7.1 | 1.3 |
1.8.0 ~ 1.8.3 | 1.4 |
任何1.9.x版本 | 1.5 |
任何1.10.x版本 | 1.8 |
下载后,自行决定要这个软件放在哪里(注意路径不要带空格和中文),解压zip压缩包,例如笔者的位置:D:\Projects\apache-ant-1.10.12。
Ant目录结构简单介绍:我们打开解压后的Ant目录,可以看到不少文件夹和文件,简单说下:
- bin是ant的程序运行入口,如果没有配置ANT_HOME的情况下,可以通过bin目录中的bat程序进行运行build任务。
- etc目录中存放的都是一些xsl的输出模板,创建一个加强的导出各种任务的XML输出,使你的build文件摆脱过时的警告
- lib目录中存放的是ant程序需要依赖的jar包
- manual目录是ant程序的帮助文档
接下来我们配置环境变量:
- 新建ANT_HOEM变量:变量值为Ant解压后的路径,例如: D:\Projects\apache-ant-1.10.12
- 配置path变量:新增 %ANT_HOME%\bin
检查是否配置成功:打开命令行,输入ant -version
C:\Users\peterjxl> ant -version
Apache Ant(TM) version 1.10.12 compiled on October 13 2021
2
至此,Ant已经安装完了,后续可以开始练习了。
# 第一个Ant项目
我们新建一个目录AntLearn(笔者是在D:\projects目录下新建的),后续我们就在这里使用和学习Ant。新建一个build.xml文件,里面的内容如下:
<?xml version="1.0" encoding="UTF8"?>
<project name="demo">
</project>
2
3
4
然后打开cmd,输入ant,运行结果如下:
D:\Projects\AntLearn> ant
Buildfile: D:\Projects\AntLearn\build.xml
BUILD SUCCESSFUL
Total time: 0 seconds
2
3
4
5
Ant的工作原理,简单来说就是根据配置文件(也叫构建脚本)的内容,去执行相应的任务,例如编译和删除编译过程的中间文件等。
如果没有指定构建文件的名字,则默认是用build.xml; 如果要指定构建脚本,可以用 -file选项
由于我们还没有仅仅只是创建了一个空的构建脚本,所以还得不能实现有意思的功能,后面我们会一步步深入。
# 小结
本文我们讲了如下内容:
- 什么是Ant
- Ant的历史和特点
- Ant的安装和配置
- 第一个Ant项目
请读者自行动手练习,完成本文的内容后再继续学习。
本文涉及的Ant配置文件:
Gitee:03.JavaEE/01.LearnAnt · 小林/LearnJava - 码云 - 开源中国 (opens new window)
GitHub:LearnJava/03.JavaEE/01.LearnAnt at master · Peter-JXL/LearnJava (opens new window)