从01开始 从01开始
首页
  • 计算机科学导论
  • 数字电路
  • 计算机组成原理

    • 计算机组成原理-北大网课
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • Git
  • JavaSE
  • Java高级
  • JavaEE

    • Ant
    • Maven
    • Log4j
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • Servlet
  • Spring
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC
  • SpringBoot
  • 学习网课的心得
  • 输入法
  • 节假日TodoList
  • 其他
  • 关于本站
  • 网站日记
  • 友人帐
  • 如何搭建一个博客
GitHub (opens new window)

peterjxl

人生如逆旅,我亦是行人
首页
  • 计算机科学导论
  • 数字电路
  • 计算机组成原理

    • 计算机组成原理-北大网课
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • Git
  • JavaSE
  • Java高级
  • JavaEE

    • Ant
    • Maven
    • Log4j
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • Servlet
  • Spring
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC
  • SpringBoot
  • 学习网课的心得
  • 输入法
  • 节假日TodoList
  • 其他
  • 关于本站
  • 网站日记
  • 友人帐
  • 如何搭建一个博客
GitHub (opens new window)
  • JavaSE

  • JavaSenior

  • JavaEE

    • JavaEE概念

    • Ant

      • Ant笔记1:Ant介绍和入门
        • 在介绍Ant之前
        • Ant是什么
        • Ant有必要学习吗
        • Ant怎么学
        • 安装Ant
        • 第一个Ant项目
        • 小结
      • Ant笔记2:运行一个Java程序
      • Ant笔记3:更多Ant用法
      • Ant系列小结
      • Ant
    • Maven

    • 日志

    • Junit

    • JDBC

    • XML和JSON

    • Java
  • JavaWeb

  • Spring

  • 主流框架

  • SpringMVC

  • SpringBoot

  • Java并发

  • Java源码

  • JVM

  • 韩顺平

  • Java
  • Java
  • JavaEE
  • Ant
2022-11-27
目录

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。

它有以下的优点(了解即可,看不懂也没关系):

  1. 开源
  2. 跨平台性:Ant是纯Java语言编写的,所以具有很好的跨平台性。
  3. 操作简单、扩展性强:Ant是由一个内置任务和可选任务组成的,用ant任务就像是在dos中写命令行一样。Ant运行时需要一个XML文件(构建文件)。 Ant通过调用target树,就可以执行各种task。每个task实现了特定接口对象。而Make是基于OS的。
  4. 维护简单、可读性好、集成简单:由于Ant构建文件 时XML格式的文件,语法简单,所以很容易维护和书写,而且结构很清晰。Ant可以集成到开发环境中。由于Ant的跨平台性和操作简单的特点,它很容易集成到一些开发环境中去。
  5. 可伸缩:Ant内置了对J2EE开发的支持,例如EJB编译和打包。 它可以用于小型个人项目,也可以用于大型软件项目。
  6. 其他:高性能,广大的社区,向后兼容性,可扩展的架构

以上所举的种种好处再加上当前已经有相当多的优秀的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程序的帮助文档

接下来我们配置环境变量:

  1. 新建ANT_HOEM变量:变量值为Ant解压后的路径,例如: D:\Projects\apache-ant-1.10.12
  2. 配置path变量:新增 %ANT_HOME%\bin

检查是否配置成功:打开命令行,输入ant -version

C:\Users\peterjxl> ant -version
Apache Ant(TM) version 1.10.12 compiled on October 13 2021
1
2

至此,Ant已经安装完了,后续可以开始练习了。

# 第一个Ant项目

我们新建一个目录AntLearn(笔者是在D:\projects目录下新建的),后续我们就在这里使用和学习Ant。新建一个build.xml文件,里面的内容如下:

<?xml version="1.0" encoding="UTF8"?>
<project name="demo">

</project>
1
2
3
4

然后打开cmd,输入ant,运行结果如下:

D:\Projects\AntLearn> ant
Buildfile: D:\Projects\AntLearn\build.xml

BUILD SUCCESSFUL
Total time: 0 seconds
1
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)

在GitHub上编辑此页 (opens new window)
上次更新: 2023/2/16 09:01:37
构建、依赖管理
Ant笔记2:运行一个Java程序

← 构建、依赖管理 Ant笔记2:运行一个Java程序→

Theme by Vdoing | Copyright © 2022-2023 粤ICP备2022067627号-1 粤公网安备 44011302003646号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式