安装 Apache Ant

获取 Apache Ant

简要说明

要快速使用 Ant 的二进制发行版,请按照以下步骤操作:

  1. 确保已安装 Java 环境。有关详细信息,请参阅 系统要求
  2. 下载 Ant。有关详细信息,请参阅 二进制发行版
  3. 将下载的文件解压缩到一个目录中。
  4. 设置环境变量:将 JAVA_HOME 设置为您的 Java 环境,将 ANT_HOME 设置为解压缩 Ant 的目录,并将 ${ANT_HOME}/bin(Unix)或 %ANT_HOME%\bin(Windows)添加到您的 PATH 中。有关详细信息,请参阅 设置
  5. 可选地,从 ANT_HOME 目录运行 ant -f fetch.xml -Ddest=system 以获取大多数需要它们的 Ant 任务的库依赖项。如果您不这样做,许多依赖的 Ant 任务将不可用。有关详细信息和其他 -Ddest 参数选项,请参阅 可选任务
  6. 可选地,添加任何所需的 Antlibs。有关列表,请参阅 Ant 库

请注意,如果您需要,上面的列表中的链接将提供有关每个步骤的更多详细信息。或者,您可以继续阅读本文档的其余部分。

使用 Ant 源代码的简要说明(如果您使用二进制发行版则不需要)是

  1. 获取源代码。有关详细信息,请参阅 源代码发行版
  2. 构建 Ant。有关详细信息,请参阅 构建 Ant

有关完整说明,请继续阅读。

二进制发行版

Ant 的最新稳定版本可从 Ant 网页 https://ant.apache.org/ 获取

Ant 的二进制发行版以 3 种不同的存档形式提供

  1. .zip—推荐用于 Windows 的压缩格式,也可以在其他平台上使用。受许多程序和一些操作系统本地支持。
  2. .tar.gz—使用 tar 程序将文件收集在一起,并使用 gzip 进行压缩和解压缩。
  3. .tar.bz2—使用 tar 程序将文件收集在一起,并使用 bzip2 进行压缩和解压缩。

选择最适合您平台的格式。

二进制 RPM 包

请参阅下面的 jpackage 部分。

捆绑在 IDE 中

所有主要的 Java IDE 都附带 Ant,例如 Eclipse、NetBeans 和 IntelliJ IDEA。如果您以这种方式安装 Ant,您通常会在 IDE 发布时获得 Ant 的最新版本。一些 IDE(特别是 Eclipse 和 NetBeans)附带额外的任务,这些任务只有在 IDE 特定的工具位于 Ant 的路径上时才有效。要在 Ant 的命令行版本上使用这些任务,需要将相关的 JAR 添加到命令行 Ant 作为额外的库/任务。请注意,如果它是一个 IDE 任务或扩展程序,并且行为不正常,Ant 团队无法处理错误报告。首先尝试 IDE 邮件列表,如果合适,他们会交叉提交错误。

IDE 通常可以指向不同的 Ant 安装。这允许开发人员升级到 Ant 的新版本,并消除命令行和 IDE Ant 之间的差异。

捆绑在 Java 应用程序中

许多 Java 应用程序,尤其是应用程序服务器,都附带 Ant 的一个版本。这些主要用于应用程序的内部使用,使用 Java API 将任务(如 JSP 页面编译)委托给 Ant 运行时。此类发行版通常不受任何人的支持。特别麻烦的是那些不仅附带自己的 Ant 版本,而且还将自己的 ANT.BATant.sh 版本添加到 PATH 的产品。如果在安装某些东西后 Ant 开始表现异常,请尝试 诊断 建议。

源代码发行版

如果您更喜欢源代码发行版,您可以从 https://ant.apache.org/srcdownload.cgi 下载最新 Ant 版本的源代码。

如果您更喜欢最前沿的代码,您可以通过 Git 访问正在开发的代码。Ant 网站提供了有关 访问 Git 的详细信息。所有错误修复都将针对源代码树的 HEAD 进行,对许多错误报告的第一个回复将是“您是否尝试过最新版本”。不要害怕下载和构建预发布发行版,因为除了新功能之外,其他所有内容通常都是稳定的。

有关如何从源代码构建 Ant,请参阅 构建 Ant 部分。您也可以在线访问 Ant Git 存储库

存档下载区域布局

Ant 的旧版本可在 https://archive.apache.org/dist/ant/ 的存档中找到。文件组织如下。

文件名或路径 描述
KEYS PGP 密钥文件。它包含 Ant 开发人员的 PGP 密钥,因此您可以“信任”发行版。
RELEASE-NOTES-{version}.html 给定版本的发布说明,以 HTML 格式。升级 Ant 安装时,您应该查看“可能破坏旧环境的更改”部分。
ant-current-bin.zip ZIP 存档,包含最新发布版本中 Ant 的编译版本。建议您不要以这种方式下载最新版本,因为上面描述的标准下载方式会将您重定向到更靠近您的镜像,从而使您的下载速度更快,并减少对 Apache 服务器的负载。
ant-current-src.zip ZIP 存档,包含 Ant 的源代码。如果您有此存档,您可以编译 Ant。如果您没有必需的依赖项,则依赖它们的类将不会被构建。同样,建议使用上面描述的获取源代码包的标准方式,以加快您的下载速度并减少对 Apache 服务器的负载。
ant-current-*.asc 用于检查 zip 文件正确性的安全文件。这是一个 PGP 签名。
ant-current-*.md5 用于检查 zip 文件正确性的安全文件。这是一个 MD5 校验和。
ant-current-*.sha1 用于检查 zip 文件正确性的安全文件。这是一个 SHA1 校验和。
ant-current-*.sha512 用于检查 zip 文件正确性的安全文件。这是一个 SHA512 校验和。
antlibs/ 此目录包含 Apache Ant 项目提供的 Antlibs。Antlibs 是 Ant 任务的捆绑包,这些任务不是作为 Ant 核心的一部分交付的,而是作为可选下载提供的。
binaries/ binaries 目录包含以 ZIP 和 tar.gz 存档格式捆绑的特定 Ant 版本。与父目录中的 ant-current-bin.zip 文件相比,命名版本始终保证是 Ant 的最新版本。
common/ common 目录包含各种文件,例如 Ant 许可的 Apache 许可证文件,人们可能希望在不下载整个 Ant 发行版的情况下查看这些文件。
source/ source 目录包含以 ZIP 和 tar.gz 存档格式捆绑的特定 Ant 版本的源代码。与父目录中的 ant-current-src.zip 文件相比,命名版本始终保证包含 Ant 最新版本的源代码。

系统要求

Ant 已成功在许多平台上使用,包括 Linux、Solaris 和 HP-UX 等商业 Unix 版本、macOS、Windows NT 后代、OS/2 Warp、Novell Netware 6、OpenVMS。用于开发的最常见的平台是(无特定顺序)Linux、macOS、Microsoft Windows 和 Unix;因此,这些平台往往最有效。从 Ant 1.7 开始,不再支持 Windows 9x。

对于当前版本的 Ant(1.10),您还需要在系统上安装 JDK,需要版本 8 或更高版本。Java 版本越新,您获得的 Ant 任务就越多。

注意:如果不存在 JDK,只有运行时 (JRE),那么许多任务将无法正常工作。

注意: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 及更高版本一起使用。

开源 Java 运行时

Ant 团队强烈支持用户在 OpenJDK 和其他开源 Java 运行时上运行 Ant,因此努力使产品在这些平台上运行良好。


安装 Ant

Ant 的二进制发行版包含以下目录布局

  ant
   +--- README, LICENSE, fetch.xml, other text files. //basic information
   +--- bin  // contains launcher scripts
   |
   +--- lib  // contains Ant JARs plus necessary dependencies
   |
   +--- manual  // Ant documentation (a must read ;-)
   |
   +--- etc // contains xsl goodies to:
            //   - create an enhanced report from xml output of various tasks.
            //   - migrate your build files and get rid of 'deprecated' warning
            //   - ... and more ;-)

binlib 目录是运行 Ant 所必需的。

要安装 Ant,请选择一个目录并将发行版文件复制到该目录。此目录将被称为 ANT_HOME

Windows 95、Windows 98 和 Windows ME 说明

请注意,Ant 的当前版本不再支持这些系统。但是,如果您使用的是旧版本的 Ant,则用于启动 Ant 的脚本在 ANT_HOME 是长文件名(即不是“8.3”格式的文件名)时会出现问题。这是由于操作系统处理 "for" 批处理文件语句的限制。因此,建议将 Ant 安装在的 8.3 路径中,例如 C:\Ant

在这些系统上,您还需要配置更多环境空间来容纳 Ant 启动脚本中使用的环境变量。为此,您需要在 config.sys 文件中添加或更新以下行

shell=c:\command.com c:\ /p /e:32768

设置

在运行 Ant 之前,您需要进行一些额外的设置,除非您安装的是 jpackage.org 上的 RPM 版本

从命令行执行此操作的操作系统特定说明位于 WindowsLinux/Unix (bash)Linux/Unix (csh) 部分。请注意,使用这种方法,设置仅对您运行它们的命令行会话有效。

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

Windows 说明

ant.bat 脚本使用三个环境变量——ANT_HOMECLASSPATHJAVA_HOME确保ANT_HOMEJAVA_HOME 变量已设置,并且它们包含引号(' 或 "),并且它们以 \ 或 / 结尾。CLASSPATH 应该未设置或为空。

检查安装

您可以通过打开一个新的 shell 并输入 ant 来检查基本安装。您应该会收到类似这样的消息

Buildfile: build.xml does not exist!
Build failed

因此 Ant 正常工作。此消息存在是因为您需要为您的项目编写一个构建文件。使用 ant -version 您应该会得到类似这样的输出

Apache Ant(TM) version 1.9.2 compiled on July 8 2013

如果这不起作用,请确保您的环境变量设置正确。例如,在 Windows 上,它们必须解析为

ANT_HOME 由启动脚本用于查找库。JAVA_HOME 由启动程序用于查找要使用的 JDK/JRE。(建议使用 JDK,因为某些任务需要 Java 工具。)如果未设置,启动程序会尝试通过 %PATH% 环境变量查找一个。PATH 用于用户方便。设置了它,您就可以直接启动 ant,而无需始终键入 the/complete/path/to/your/ant/installation/bin/ant

可选任务

Ant 支持许多可选任务。可选任务是通常需要外部库才能正常工作的任务。可选任务与核心 Ant 任务一起打包。

每个可选任务所需的外部库在 库依赖项 部分中详细说明。这些外部库必须添加到 Ant 的类路径中,可以通过以下任何一种方式添加

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

为此,请更改到 ANT_HOME 目录并执行以下命令

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

其中选项是以下之一,如上所述

您可能还需要设置代理设置。有关详细信息,请参见 代理设置 部分。

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

Apache Ant 项目还提供其他任务和类型,这些任务和类型可以作为单独下载的 Ant 库使用。您可以在 Ant 库 页面上查看可用 Ant 库的列表。

您还可以在 外部工具和任务 页面上找到第三方项目提供的任务和类型。

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

CLASSPATH 环境变量

CLASSPATH 环境变量是许多 Ant 支持查询的来源。由于 Ant 用户邮件列表的诊断往返时间可能很慢,并且因为提交有关“ant.bat”无法正常工作的错误报告会被开发人员拒绝,因为 WORKSFORME“这是一个配置问题,而不是错误”,您可以通过遵循一些简单的步骤来节省大量时间和精力。

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

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

您还可以通过在脚本顶部(或在 init 目标中)放置以下内容来使您的 Ant 脚本拒绝此环境变量

<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>

代理配置

许多 Ant 内置和第三方任务使用网络连接从 HTTP 服务器检索文件。如果您位于使用代理服务器的防火墙后面,则需要为 Ant 配置代理。以下是执行此操作的不同方法。

Ant 团队承认这是不令人满意的。在 JVM 自动代理设置在所有地方都能正常工作之前,通过 ANT_ARGS 使用显式 JVM 选项可能是最好的解决方案。在 Ant 的命令行上设置属性不起作用,因为这些是正在设置的Ant 属性,而不是 JVM 选项。这意味着以下内容不会设置命令行

ant -Dhttp.proxyHost=proxy -Dhttp.proxyPort=81

它只设置了两个 Ant 属性。

代理的另一个问题是使用身份验证代理。Ant 在这里无法超越 JVM 的功能,并且由于很难远程诊断、测试和修复与代理相关的问题,因此在安全代理后面工作的用户将不得不花费大量时间配置 JVM 属性,直到他们满意为止。

Windows 和 OS/2

假设 Ant 安装在 c:\ant\ 中。以下设置了环境

set ANT_HOME=c:\ant
set JAVA_HOME=c:\jdk11.0.8_10
set PATH=%PATH%;%ANT_HOME%\bin

Linux/Unix(bash)

假设 Ant 安装在 /usr/local/ant 中。以下设置了环境

export ANT_HOME=/usr/local/ant
export JAVA_HOME=/usr/local/jdk-11.0.8+10
export PATH=${PATH}:${ANT_HOME}/bin

Linux/Unix(csh)

setenv ANT_HOME /usr/local/ant
setenv JAVA_HOME=/usr/local/jdk-11.0.8+10
set path=( $path $ANT_HOME/bin )

设置指向 JVM/JDK 版本的符号链接使更新更加无缝。

来自 jpackage.org 的 RPM 版本

JPackage 项目 分发 Ant 的 RPM 版本。使用此版本,无需设置 JAVA_HOMEANT_HOME 环境变量,RPM 安装程序会将 ant 可执行文件正确放置在您的路径上。

注意从 Ant 1.7.0 开始,如果设置了 ANT_HOME 环境变量,则会忽略 JPackage 分发版。

JPackage 版本的可选 JAR 以两种方式处理。最简单也是最好的方法是从 JPackage 获取这些外部库,如果 JPackage 提供了这些库。(注意:对于每个这样的库,您将不得不获取外部包本身(例如 oro-2.0.8-2jpp.noarch.rpm)以及链接 Ant 和外部包的小型库(例如 ant-apache-oro-1.6.2-3jpp.noarch.rpm)。

但是,JPackage 不会打包专有软件,并且由于某些可选包依赖于专有 JAR,因此必须按如下方式处理。这可能会违反 JPackage 的精神,但如果您需要这些专有包,则这是必要的。例如,假设您想安装对 NetRexx 的支持,而 JPackage 不支持它

  1. 确定您要将额外 JAR 部署到哪里。一个选项是在 $ANT_HOME/lib 中,对于 JPackage,通常是 /usr/share/ant/lib。另一个不太混乱的选项是创建 home 目录的 .ant/lib 子目录并将您的非 JPackage Ant JAR 放置在那里,从而避免在同一个文件夹中将 JPackage 库与非 JPackage 库混合在一起。有关 Ant 在哪里查找其库的更多信息,请参见 此处
  2. 从常规的 Apache Ant 网站 下载非 JPackage 二进制发行版
  3. 将发行版解压缩或解压缩到临时目录
  4. 将链接 JAR(在本例中为 ant-jai.jar)复制到您在步骤 1 中选择的库目录中。
  5. 将专有 JAR 本身复制到同一个目录中。
最后,如果由于某种原因您正在运行一个同时具有 JPackage 和 Apache 版本的 Ant 的系统,如果您想运行 Apache 版本(它必须使用绝对文件名指定,而不是在路径上找到),您应该使用 Ant 的 --noconfig 命令行开关来避免 JPackage 的类路径机制。

高级

运行 Ant 的方法有很多。您至少需要以下内容

提供的 Ant shell 脚本都支持一个 ANT_OPTS 环境变量,它可以用来向 Ant 提供额外的选项。一些脚本还会读取用户主目录中存储的额外脚本,该脚本可用于设置此类选项。查看您平台的调用脚本的源代码以获取详细信息。

构建 Ant

要从源代码构建 Ant,您可以安装 Ant 源代码分发版或从 Git 克隆 Ant 存储库。有关详细信息,请参阅 源代码分发版

安装完源代码后,进入安装目录。

JAVA_HOME 环境变量设置为安装 JDK 的目录。有关如何在您的操作系统上执行此操作的示例,请参阅 安装 Ant

注意:Ant 的引导过程需要一个贪婪的编译器,例如 OpenJDK 或 Oracle 的 javac。它不适用于 gcjkjc

确保您已下载构建您感兴趣的任务所需的任何辅助 JAR。这些应该添加到源代码树的 lib/optional 目录中。有关各种功能的 JAR 要求列表,请参阅 库依赖项。请注意,这将使辅助 JAR 仅在构建 Ant 时可用。要运行 Ant,您仍然需要使 JAR 可用,如 安装 Ant 中所述。

您还可以通过在 fetch.xml 构建文件上运行 Ant 来获取大多数辅助 JAR 文件(即各种可选 Ant 任务依赖的 JAR 文件)。有关如何执行此操作的说明,请参阅 可选任务

从 Ant 1.7.0 开始,Ant 对 JUnit 有硬依赖。 fetch.xml 构建脚本将自动下载 JUnit,但如果您不使用它,则必须将其手动安装到 lib/optional 中(从 JUnit.org 下载),如果您使用的是 Ant 的源代码分发版。

您现在可以构建 Ant 了

强烈建议您在以下命令中传递给 dist.dir 的目录路径指向一个空目录

build -Ddist.dir=<包含 Ant 分发版的目录> dist    (Windows)

sh build.sh -Ddist.dir=<包含 Ant 分发版的目录> dist    (Unix)

这将在您指定的目录中创建一个 Ant 的二进制分发版。

上述操作将执行以下操作

在大多数情况下,您不需要显式引导 Ant,因为构建脚本会为您执行此操作。但是,如果您使用的构建文件使用了尚未编译到引导后的 Ant 中的功能,则需要手动引导。运行 bootstrap.bat(Windows)或 bootstrap.sh(UNIX)来构建 Ant 的新引导版本。

如果您希望将构建安装到当前的 ANT_HOME 目录中,可以使用

build install    (Windows)

sh build.sh install    (Unix)

如果需要,您可以避免冗长的 Javadoc 步骤,使用

build install-lite    (Windows)

sh build.sh install-lite    (Unix)

这将只安装 binlib 目录。

installinstall-lite 目标都将覆盖 ANT_HOME 中的当前 Ant 版本。

Ant 的构建脚本将尝试为其在 Unix(-like) 系统上的 shell 脚本设置可执行标志。 chmod 任务可能失败的原因有很多(例如,当您以与最初安装 Ant 的用户不同的用户身份运行构建脚本时)。在这种情况下,您可以在启动构建时将 Ant 属性 chmod.fail 设置为 false,例如

sh build.sh install -Dchmod.fail=false

任何更改权限的错误都不会导致构建失败。


库依赖项

如果您使用的是指示的功能,则 Ant 的类路径中需要以下库。请注意,映射器只需要一个正则表达式库(并且 Java 包含 Ant 将自动找到的正则表达式实现)。您还需要安装包含任务定义的特定 Ant 可选 JAR,以使这些任务可用。请参阅上面的 安装 Ant / 可选任务 部分。

JAR 名称 需要用于 可在以下位置获取
jakarta-regexp-1.4.jar regexp 类型与映射器(如果您不想使用 java.util.regex https://attic.apache.org/projects/jakarta-regexp.html
jakarta-oro-2.0.8.jar regexp 类型与映射器(如果您不想使用 java.util.regex)或 ftp 任务与 commons-net 1.4.1 https://attic.apache.org/projects/jakarta-oro.html
junit.jar junit 任务(可能在传递给任务的类路径中,而不是 Ant 的类路径中) https://junit.java.net.cn/
xalan.jar junitreport 任务 https://xml.apache.org/xalan-j/
antlr.jar antlr 任务 https://www.antlr.org/
bsf.jar script 任务
注意:Ant 1.6 及更高版本需要 Apache BSF 2.3.0 或更高版本。
注意:BSF 2.4.0 需要使用 1.5R4 或更高版本的 Rhino JavaScript。
注意:BSF 2.4.0 使用 Commons Logging,因此它需要 commons-logging.jar。
https://commons.apache.org/bsf/
Groovy JAR 带有绑定的 Groovy Ant 任务或带有 scriptscriptdef 任务的 Groovy https://groovy-lang.cn/
使用 groovy-ant 用于带有绑定的 Groovy Ant 任务,或 groovy-bsf 用于带有 script 和 scriptdef 任务的 Groovy(或 groovy-all)
netrexx.jar netrexxc 任务,带有 script 任务的 Rexx https://www.ibm.com/software/awdtools/netrexx/library.html
rhino.jar
(包含在 Java 7 运行时中,在 Java 8 及更高版本中被 Nashorn 替换,在 Java 15 中被删除)
带有 script 任务的 JavaScript
注意:Apache BSF 2.4.0 仅适用于 Rhino 1.5R4 及更高版本。
https://www.mozilla.org/rhino/
graalvm js.jar 和 js-scriptengine.jar
Java 15 及更高版本的 script 任务的 JavaScript
Java 15 已删除 Nashorn,GraalVM JavaScript 旨在取代它 - 在 Java 类库之外。
注意 GraalVM JavaScript 不是 Nashorn 的直接替代品,有关详细信息,请参阅 script 任务文档。此外,GraakVM JavaScript 需要更多依赖项,特别是 GraalVM 正则表达式、truffle、GraalVM SDK 和 ICU。
jython.jar 带有 script 任务的 Python https://www.jython.cn/
jacl.jar 和 tcljava.jar 带有 script 任务的 TCL http://tcljava.sourceforge.net/
jtcl.jar 带有 script 任务的 TCL https://jtcl-project.github.io/jtcl/
BeanShell JAR 带有 script 任务的 BeanShell。
注意:Ant 需要 BeanShell 1.3 或更高版本
http://www.beanshell.org/
jruby.jar 带有 script 任务的 Ruby https://jruby.org/
judo.jar 带有 script 任务的 Judo 语言 以前位于 http://www.judoscript.org/,现在已不可用。
commons-logging.jar CommonsLoggingListener https://commons.apache.org/logging/
log4j.jar Log4jListener https://logging.apache.org/log4j/
commons-net.jar ftprexectelnet 任务
编译 Ant 需要至少 1.4.0 版本的 commons-net,早期版本不支持全部配置选项。
运行时需要 jakarta-oro 2.0.8 以及 commons-net 1.4.x。
注意:不要使用 commons-net 3.2,因为它存在 性能问题
https://commons.apache.org/net/
bcel.jar classfileset 数据类型,ClassConstants 过滤器读取器使用的 JavaClassHelper,以及 ejbjar 任务(可选)用于依赖项确定 https://commons.apache.org/bcel/
jakarta.mail.jar mail 任务和已弃用mimemail 任务 https://eclipse-ee4j.github.io/mail/
activation.jar
  • 包含在 Java 6 到 Java 10 中,但 java.activation 模块已弃用,并在 Java 9 中标记为要删除,需要在 Java 10 上显式启用。
  • 从 Java 11 开始,java.activation 模块已被 删除,并且必须在类路径中显式提供该 jar。
带有 MIME 编码的 mail 任务,以及已弃用mimemail 任务 https://github.com/eclipse-ee4j/jaf
jdepend.jar jdepend 任务 https://github.com/clarkware/jdepend
resolver.jar 1.1 或更高版本 xmlcatalog 数据类型(仅当需要对外部目录文件支持时) https://xerces.apache.org/xml-commons/components/resolver/
jsch.jar 0.1.55 或更高版本 sshexecscp 任务 http://www.jcraft.com/jsch/
JAI - Java 高级成像 image 任务 https://download.java.net/media/jai/builds/release/1_1_3/INSTALL.html
jai-imageio-core.jar Java 8 上的 TIFF 支持以及 PCX、PNM、RAW 支持的 imageio 任务 https://github.com/jai-imageio/jai-imageio-core/releases
XZ - Java 的 XZ 1.6 或更高版本 xzunxz 任务、xzresourcetar/untar 任务中的 xz 压缩 https://www.tukaani.org/xz/java.html
JUnit 5 平台 jar
  • junit-platform-commons.jar
  • junit-platform-engine.jar
  • junit-platform-launcher.jar
junitlauncher 任务。可能需要其他库,具体取决于所选的测试引擎,有关详细信息,请参阅该任务的文档 https://junit.java.net.cn/junit5/

故障排除

诊断

Ant 具有内置的诊断功能。如果您运行 ant -diagnostics,Ant 将查看其内部状态并将其打印出来。此代码将检查并打印以下内容。

运行 ant -diagnostics 是检查 Ant 是否已安装的良好方法。它也是自诊断任何问题的第一步。向用户邮件列表报告的任何配置问题可能会导致有人要求您运行该命令并显示结果,因此请自行使用它以节省时间。

对于 IDE 中的诊断,请使用 diagnostics 任务运行与 Ant 选项相同的测试。这可以添加到构建文件中的诊断目标中,以查看 IDE 下可用的任务、XML 解析器和类路径等。

用户邮件列表

如果您无法安装或运行 Ant,Ant 用户邮件列表是解决任何问题的最佳起点。请先做好功课,确保这不是 CLASSPATH 问题,并运行 诊断检查 以查看 Ant 对自身状态的看法。为什么是用户列表,而不是开发者列表?因为用户比开发者多,所以可以帮助您的人也更多。

请仅在 Ant 中存在与配置相关的可修复错误时,才针对 Ant 提交有关配置/启动问题的错误报告,例如它在特定平台上无法正常工作,或者在特定 JVM 版本上无法正常工作,或者用户邮件列表建议您这样做。