一、系统需求

对于当前版本的Ant(1.10),您还需要在系统上安装JDK,需要8版或更高版本。Java版本越是最新,您得到的Ant任务就越多。此外,Ant 支持在OpenJDK和其他开源Java Runtimes上运行。

注意1:如果没有JDK,只有运行时(JRE),那么许多任务将无法工作。

注意2:Ant 1.10.*适用于JDK 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及更高版本。

二、下载

访问Apache Ant官网:https://ant.apache.org/,点击Download→ Binary Distributions,下载支持当前系统JDK版本的Ant。

三、安装

1、目录结构:

ant
   +--- README, LICENSE, fetch.xml, other text files. //basic information
   +--- bin  // contains launcher scripts(包含启动程序脚本)
   |
   +--- lib  // contains Ant JARs plus necessary dependencies(包含Ant JAR和必要的依赖项)
   |
   +--- manual  // Ant documentation (a must read ;-)(Ant文档)
   |
   +--- etc // contains xsl goodies to:
            //   - create an enhanced report from xml output of various tasks.(包含xsl工具,用于从各种任务的xml输出创建增强的报告。)
            //   - migrate your build files and get rid of 'deprecated' warning(包含用于迁移构建文件和消除“不推荐”警告的xsl工具。)
            //   - ... and more ;-)

运行Ant只需要bin和lib目录。 要安装Ant,请选择一个目录并将发行版文件复制到那里。该目录将被称为ANT_HOME。

2、设置系统环境变量:

在运行Ant之前,您需要进行一些额外的设置,将ANT_HOME环境变量设置为安装ANT的目录。做法:同JAVA_HOME。

注意:不要将Ant的Ant.jar文件安装到JDK/JRE的lib/ext目录中。Ant是一个应用程序,而扩展目录用于JDK扩展。特别是对扩展可能加载的类有安全限制。

3、Windows说明

ant.bat脚本使用了三个环境变量:ANT_HOME、CLASSPATH和JAVA_HOME。确保设置了ANT_HOME和JAVA_HOME变量,并且它们没有引号('或"),也没有以 \ 或 / 结尾。CLASSPATH应未设置或为空。

4、检查安装情况

您可以打开一个新的shell并键入ant来检查基本安装。你应该得到这样的信息:

Buildfile: build.xml does not exist!
Build failed

Ant就是这样工作的。之所以出现此消息,是因为您需要为项目编写构建文件。使用ant -version,您应该得到如下输出:

Apache Ant(TM) version 1.10.11 compiled on July 10 2021

如果这不起作用,请确保环境变量设置正确。例如,在Windows上,他们必须解决以下问题:

  • 必需:%ANT_HOME%\bin\ant.bat
  • 可选:%JAVA_HOME%\bin\java.exe
  • 必需:%PATH%=...maybe-other-entries...;%ANT_HOME%\bin;...maybe-other-entries...

maybe-other-entries:可能还有其他条目

ANT_HOME被启动器脚本用于查找库。JAVA_HOME被启动器用于查找要使用的JDK/JRE(建议使用JDK,因为某些任务需要Java工具。)。如果未设置,启动器将尝试通过%PATH%环境变量查找。设置PATH是为了方便用户。使用该设置,您只需启动ant,而不必总是键入ant的bin路径。

5、可选任务
Ant支持许多可选任务。可选任务通常是需要外部库才能运行的任务。可选任务与核心Ant任务打包在一起。每个可选任务所需的外部库在库依赖项部分中有详细说明。必须通过以下任一方式将这些外部库添加到Ant的类路径:

  • 在ANT_HOME/lib中。这使得所有Ant用户和构建都可以使用JAR文件。
  • 在${user.home}/.ant/lib中(从ant 1.6开始)。这允许不同的用户向Ant添加新的库。命令行Ant可以使用添加到此目录的所有JAR文件。
  • 在命令行上使用 -lib 参数。这使您可以根据具体情况添加新的JAR文件。
  • 在CLASSPATH环境变量中。避免这种情况;它使JAR文件对所有Java应用程序都可见,并且不会导致结束支持调用。
  • 在一些任务本身接受的<classpath>。从Ant 1.7.0开始,只要在运行任务时传递的类路径中包含<junit>任务,就可以在Ant自己的类路径中不使用junit.jar来运行任务。在可能的情况下,通常首选此选项,因为Ant脚本本身可以确定从中加载库的最佳路径:根据Ant属性、环境变量、Ivy下载,通过basedir的相对路径。

如果您使用的是Ant的二进制发行版,或者您使用的是源代码,那么您可以轻松地收集大多数依赖项并安装它们以用于Ant任务。在ANT_HOME中,您应该看到一个名为 fetch.xml 的文件。这是一个Ant脚本,您可以运行它来安装可选Ant任务所需的几乎所有依赖项。

为此,请切换到ANT_HOME并执行以下命令:

ant -f fetch.xml -Ddest=[option]

option 可以是下面的任意一个参数: 

  • system:存储在Ant的lib目录中(推荐)
  • user:存储在用户的主目录中
  • optional:存储在Ant的源代码 lib/optional 目录中,用于构建Ant源代码

请注意,并非所有依赖项都是使用fetch.xml收集的。特别是依赖于商业软件的任务,需要安装商业软件才能使用。

Apache Ant项目还提供了额外的任务和类型,这些任务和类型可以作为单独下载的Ant库提供。您可以在 Ant Libraries 上看到可用Antlib的列表。

您还可以在 External Tools and Tasks 页面中找到第三方项目提供的任务和类型。

IDE有不同的方式向Ant添加外部JAR文件和第三方任务。通常通过一些配置对话框来完成。有时,添加到项目中的JAR文件会自动添加到Ant的类路径中。

6、CLASSPATH 环境变量

CLASSPATH 环境变量是许多 Ant 支持查询的来源。 由于在 Ant 用户邮件列表上进行诊断的往返时间可能很慢,并且因为提交错误报告抱怨 'ant.bat' 不起作用将被开发人员拒绝,因为 WORKSFORME “这是一个配置问题,而不是一个错误” ,您可以通过以下一些简单的步骤为自己节省大量时间和挫折。

  • 永远不要设置 CLASSPATH。 Ant 不需要它,它只会引起混乱和破坏事物。
  • 如果您忽略之前的规则,请永远不要在 CLASSPATH 中添加引号,即使目录中有空格也是如此。这会破坏 Ant,它是不需要的。
  • 如果您忽略第一条规则,请永远不要在 CLASSPATH 中使用尾随反斜杠,因为它会破坏 Ant 引用字符串的能力。同样,即使要将 DOS 目录添加到路径中,也不需要正确操作 CLASSPATH 环境变量。
  • 您可以通过在命令行上设置 -noclasspath 选项来使用 CLASSPATH 环境变量来停止 Ant。这是测试类路径相关问题的简单方法。

CLASSPATH 问题的常见症状是 Ant 不会运行并出现一些关于无法找到 org.apache.tools.ant.launch.Launcher 的错误,或者,如果引号/反斜杠错误,一些非常奇怪的 Java 启动错误。要查看是否是这种情况,请运行 ant -noclasspath 或取消设置 CLASSPATH 环境变量。

你也可以让你的 Ant 脚本拒绝这个环境变量,只需将以下内容放在脚本的顶部(或在 init target中):

<property environment="env."/>
<property name="env.CLASSPATH" value=""/>
<fail message="Unset $CLASSPATH / %CLASSPATH% before running Ant!">
    <condition>
        <not>
            <equals arg1="${env.CLASSPATH}" arg2=""/>
        </not>
    </condition>
</fail>