安裝 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.dev.org.tw/獲取

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)隨附有額外的任務,這些任務僅在Ant的路徑上存在特定於IDE的工具時才起作用。要在命令行版本的Ant上使用這些功能,需要將相關的JAR添加到命令行Ant作為額外的庫/任務。請注意,如果存在IDE任務或擴展未正常工作的情況,Ant團隊將無法處理錯誤報告。請優先使用IDE郵件列表,如果適當的話,他們將交叉提交錯誤報告。

IDE通常可以指向不同的Ant安裝。這使開發人員可以升級到新版本的Ant,並消除命令行和IDE Ant之間的不一致性。

捆綁在Java應用程式中

許多Java應用程式,尤其是應用程式伺服器,都會隨附一個版本的Ant。這些主要用於應用程式內部使用,使用Java API將任務委派給Ant運行時,例如JSP頁面編譯。這些發行版通常由所有人不支持。尤其棘手的是那些不僅隨其自己的Ant版本提供的產品,而且還將其自己的ANT.BATant.sh添加到PATH中。如果安裝某些東西後Ant的行為變得奇怪,請嘗試診斷建議。

源代碼發行版

如果您更喜歡源代碼發行版,可以從https://ant.dev.org.tw/srcdownload.cgi下載最新版本的Ant源代碼。

如果您更喜歡前沿代碼,可以通過Git訪問正在開發的代碼。Ant網站提供了訪問Git的詳細信息。所有錯誤修復都將針對源樹的HEAD進行,對於許多錯誤報告的第一個回應將是“您是否嘗試了最新版本”。請不要害怕下載和構建預發行版,因為除了新功能之外的一切通常都是穩定的。

有關如何從源代碼構建Ant的部分,請參見構建Ant。您還可以在線訪問Ant Git存儲庫

存檔下載區布局

較舊版本的Ant可以在存檔中找到,網址為https://archive.apache.org/dist/ant/。文件的組織如下。

檔案名稱或路徑 描述
金鑰 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/ 二進制目錄包含特定的 Ant 版本,以 ZIP 和 tar.gz 壓縮格式打包。這些命名的發行版與父目錄中的 ant-current-bin.zip 文件形成對比,該文件始終保證是最新版本的 Ant。
common/ common 目錄包含各種文件,例如 Apache 授權檔案,Ant 在其中許可使用,人們可能希望在不必下載整個 Ant 分發版的情況下檢查這些文件。
source/ source 目錄包含特定 Ant 版本的源代碼,以 ZIP 和 tar.gz 壓縮格式打包。這些命名的發行版與父目錄中的 ant-current-src.zip 文件形成對比,該文件始終保證是最新版本的 Ant 源代碼。

系統要求

Ant 在許多平台上都成功使用,包括 Linux、商業化的 Unix 變種,如 Solaris 和 HP-UX、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,而不必總是輸入ant安裝/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 庫 頁面上查看可用的 Antlibs 列表。

您還可以在 外部工具和任務 頁面上找到由第三方項目提供的任務和類型。

IDE 有不同的方法來添加外部 JAR 文件和第三方任務到 Ant。通常是通過某個配置對話框完成的。有時將 JAR 文件添加到項目中會自動添加到 Ant 的類路徑中。

CLASSPATH 環境變量

CLASSPATH 環境變量是許多 Ant 支持查詢的來源。由於在 Ant 使用者郵件列表上的往返時間可能很慢,並且因為提交關於 'ant.bat' 不工作的 bug 報告將被開發人員拒絕為 WORKSFORME "這是一個配置問題,而不是一個 bug",因此您可以通過遵循一些簡單的步驟來節省大量的時間和挫折。

  1. 永遠不要設置 CLASSPATH。Ant 不需要它,這只會引起混亂並破壞事情。
  2. 如果您忽略了上述規則,永遠不要在 CLASSPATH 中加上引號,即使目錄中有空格。這會破壞 Ant,並且不需要。
  3. 如果您忽略了第一條規則,請絕對不要在 CLASSPATH 中加上尾隨反斜線,因為這會破壞 Ant 引用字符串的能力。再次強調,即使要將 DOS 目錄添加到路徑中,也不需要這樣做以確保 CLASSPATH 環境變量的正確運作。
  4. 您可以通過在命令行上設置 -noclasspath 選項來阻止 Ant 使用 CLASSPATH 環境變量。這是測試與 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。另一個不那麼混亂的選擇是在您的家目錄下創建一個 .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,您仍然需要按照 安裝 Ant 中描述的方法使 JAR 檔可用。

您還可以通過在 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 的類路徑中。請注意,與 mappers 一起使用時只需要一個 regexp 程式庫(且 Java 包含了 Ant 將自動找到的 regexp 實現)。您還需要安裝特定的 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.dev.org.tw/
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 或更新版本。
注意:使用 1.5R4 或更新版本的 Rhino JavaScript 需要 BSF 2.4.0。
注意:BSF 2.4.0 使用 Commons Logging,因此需要 commons-logging.jar。
https://commons.apache.org/bsf/
Groovy JAR 檔 Groovy Ant 任務與綁定,或者使用 scriptscriptdef 任務的 Groovy https://groovy.dev.org.tw/
使用 groovy-ant 進行 Groovy Ant 任務與綁定,或使用 groovy-bsf 進行 script 和 scriptdef 任務的 Groovy(或 groovy-all)
netrexx.jar netrexxc 任務,Rexx 使用 script 任務 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 任務文件。此外,GraalVM JavaScript 需要更多的依賴項,特別是 GraalVM regex、truffle、GraalVM SDK 和 ICU。
jython.jar 使用 script 任務的 Python https://www.jython.org/
jacl.jar 和 tcljava.jar 使用 script 任務的 TCL http://tcljava.sourceforge.net/
jtcl.jar 使用 script 任務的 TCL https://jtcl-project.github.io/jtcl/
BeanShell JAR(s) 使用 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 需要 commons-net 的最低版本為 1.4.0,較早的版本不支援完整的配置選項範圍。
運行時需要 jakarta-oro 2.0.8 和 commons-net 1.4.x。
注意:因性能問題,請勿使用 commons-net 3.2
https://commons.apache.org/net/
bcel.jar classfileset 資料類型,JavaClassHelper 由 ClassConstants 篩選器讀取器使用,並且選擇性地被 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編碼,以及已棄用的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 Advanced Imaging image任務 https://download.java.net/media/jai/builds/release/1_1_3/INSTALL.html
jai-imageio-core.jar imageio任務,用於Java 8的TIFF支援,以及PCX、PNM、RAW支援 https://github.com/jai-imageio/jai-imageio-core/releases
XZ—XZ for Java 1.6或更新版本 xzunxz任務,xzresource,在tar/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.dev.org.tw/junit5/

疑難排解

診斷

Ant具有內建的診斷功能。如果執行ant -diagnostics,Ant將查看其內部狀態並將其打印出來。此代碼將檢查並打印以下信息。

運行ant -diagnostics是檢查Ant是否已安裝的好方法。這也是自我診斷任何問題的第一步。向用戶郵件列表報告的任何配置問題可能會導致有人要求您運行該命令並顯示結果,因此自己使用它可以節省時間。

在IDE中進行診斷時,請使用診斷任務來運行與 Ant 選項相同的測試。這可以添加到建置檔案中的診斷目標,以查看在 IDE 下可用的任務,XML 解析器和類別路徑等。

用戶郵件列表

如果您無法安裝或使用 Ant,Ant 用戶郵件列表是解決任何問題的最佳起點。請先做好功課,確保這不是一個CLASSPATH問題,並運行診斷檢查來查看 Ant 對其自身狀態的看法。為什麼是用戶列表而不是開發者列表?因為用戶比開發者多,所以有更多人可以幫助您。

請僅在確實存在與配置相關的可修復 Bug(例如在特定平台上無法運行、與特定的 JVM 版本不兼容等)或者在用戶郵件列表中得到建議後,才對 Ant 提交關於配置/啟動問題的錯誤報告。