已棄用:javadoc2
任務僅指向 javadoc
任務,且其存在是為了向後相容性考量。由於此任務將在未來版本中移除,強烈建議改用 javadoc。
使用 javadoc 工具產生程式碼文件。
來源目錄將會遞迴掃描 Java 來源檔案以進行處理,但僅會將符合包含規則且不符合排除規則的檔案傳遞給 javadoc 工具。這允許使用萬用字元在封裝名稱之間進行選擇,以減少冗長度並降低管理成本。然而,此任務與 javac 任務不同,沒有「已變更」檔案的概念。這表示每次執行此任務時,所有封裝都會被處理。不過,通常會較不頻繁地使用此任務。
注意:由於 javadoc 會呼叫 System.exit()
,因此無法在與 Apache Ant 相同的 JVM 中執行 javadoc,否則會損壞功能。因此,此任務總是會分岔 JVM。此開銷並不顯著,因為 javadoc 通常是一個大型應用程式,且呼叫頻率很低。
注意:packagelist 屬性允許您在 Ant 檔案外指定要記錄的封裝清單。建議將所有內容都包含在 build.xml
檔案中。新增此選項是為了讓從一般 makefile(您會在此使用 javadoc 的此選項)移轉變得更容易。packagelist 中所列的封裝並未經過檢查,因此即使某些封裝遺失或損毀,任務仍會執行。如果您想從現有的 makefile 轉換,請使用此選項。一旦執行順利,您應該改用一般表示法。
注意:在為包含註解的類別產生 JavaDoc 時,您可能會收到 java.lang.ClassCastException: com.sun.tools.javadoc.ClassDocImpl
。這是因為 錯誤 6442982。原因是 javadoc 找不到已使用註解的實作。解決方法是使用 classpath、classpathref 屬性或巢狀 <classpath>
元素,將包含這些實作的 jar(例如 JAXBs @XmlType
,...)提供給 <javadoc>
。
注意:執行 javadoc 時會發生許多問題,源自於命令列過長,即使錯誤訊息沒有提供任何提示,這也可能是問題。如果您在執行任務時遇到問題,請先嘗試將 useexternalfile 屬性設定為 true
。
如果您使用多種方式來指定 javadoc 應該在哪裡尋找原始碼,您的結果將會是所有指定文件檔的聯集。例如,如果您指定一個 sourcepath 屬性,還有一個嵌套的 packageset
,兩個都指向同一個目錄,您的 excludepackagenames 屬性將不會有任何作用,除非它與 packageset
的 exclude 模式一致(反之亦然)。
屬性 | 說明 | 必要 |
---|---|---|
sourcepath | 指定在哪裡尋找原始碼檔案 | 四個或嵌套的 <sourcepath> 、<fileset> 、module 或 <packageset> 中至少一個 |
sourcepathref | 透過 參考 在其他地方定義的 sourcepath,來指定在哪裡尋找原始碼檔案。 | |
sourcefiles | 原始碼檔案的逗號分隔清單,另請參閱嵌套的 source 元素。 |
|
modulenames | 模組名稱的逗號分隔清單,另請參閱嵌套的 module 元素。自 Ant 1.10.6 起 |
|
destdir | 輸出檔案的目的地目錄 | 是,除非已指定 doclet。 |
maxmemory | 分配給 javadoc JVM 的最大記憶體量 | 否 |
packagenames | 套件檔案的逗號分隔清單(以終止萬用字元結尾),另請參閱嵌套的 package 元素。 |
否 |
packageList | 包含要處理的套件檔案名稱 | 否 |
classpath | 指定在哪裡尋找使用者類別檔案 | 否 |
Bootclasspath | 覆寫由引導程式類別載入器載入的類別檔案位置 | 否 |
classpathref | 透過 參考 在其他地方定義的 classpath,來指定在哪裡尋找使用者類別檔案。 | 否 |
bootclasspathref | 透過 參考 在其他地方定義的 bootclasspath,來覆寫由引導程式類別載入器載入的類別檔案位置。 | 否 |
Extdirs | 覆寫已安裝擴充功能的位置 | 否 |
概觀 | 從 HTML 檔案讀取概觀文件 | 否 |
access | 存取模式:public、 protected、 package或 private之一 |
否;預設為 protected |
公共 | 僅顯示公共類別和成員 | 否 |
受保護 | 顯示受保護/公共類別和成員(預設) | 否 |
套件 | 顯示套件/受保護/公共類別和成員 | 否 |
私人 | 顯示所有類別和成員 | 否 |
舊 | 使用模擬 doclet 的 JDK 1.1 產生輸出。 注意:除非您使用 jdk 1.4 之前的外部 javadoc,否則此屬性不會產生任何作用 |
否 |
詳細 | 輸出 javadoc 正在執行中的訊息 | 否 |
區域設定 | 要使用的區域設定,例如 en_US或 en_US_WIN |
否 |
編碼 | 原始檔編碼名稱 | 否 |
版本 | 包含 @version 段落 |
否 |
使用 | 建立類別和套件使用頁面 | 否 |
作者 | 包含 @author 段落 |
否 |
分割索引 | 將索引分割成每個字母一個檔案 | 否 |
視窗標題 | 文件瀏覽器視窗標題(文字) | 否 |
文件標題 | 包含套件索引(第一)頁面的標題(HTML 程式碼) | 否 |
標頭 | 包含每個頁面的標頭文字(HTML 程式碼) | 否 |
頁尾 | 包含每個頁面的頁尾文字(HTML 程式碼) | 否 |
底部 | 包含每個頁面的底部文字(HTML 程式碼) | 否 |
連結 | 建立連結至指定 URL 的 javadoc 輸出,另請參閱巢狀 link 元素。 |
否 |
離線連結 | 透過指定 url alt-url(空格作為分隔符號)的值,連結至 url 的文件,並使用 alt-url 的套件清單。巢狀 link 元素的簡寫,其中 offline=true。 |
否 |
群組 | 在概觀頁面中將指定的套件分組。格式如下所述 下方,另請參閱巢狀 group 元素。 |
否 |
不顯示已棄用 | 不包含 @deprecated 資訊 |
否 |
不顯示已棄用清單 | 不產生已棄用清單 | 否 |
不顯示樹狀結構 | 不產生類別階層 | 否 |
不顯示索引 | 不產生索引 | 否 |
不顯示說明 | 不產生說明連結 | 否 |
不顯示導覽列 | 不產生導覽列 | 否 |
序列化警告 | 產生有關 @serial 標籤的警告 |
否 |
說明檔案 | 指定要使用的 HTML 說明檔案 | 否 |
樣式表檔案 | 指定要使用的 CSS 樣式表 | 否 |
字元集 | 用於跨平台檢視產生的文件 | 否 |
文件編碼 | 輸出檔案編碼名稱 | 否 |
文件說明 | 指定用於產生文件說明的 doclet 開始的類別檔案—另請參閱嵌套的 doclet 元素。 |
否 |
文件說明路徑 | 指定使用 -doclet 選項指定的 doclet 類別檔案路徑。 | 否 |
文件說明路徑參考 | 指定使用 -doclet 選項指定的 doclet 類別檔案路徑,方法是 參考 其他地方定義的路徑。 | 否 |
其他參數 | 讓您將其他參數新增至 javadoc 命令列。對 doclet 很實用。包含空白的參數需要使用 " 進行引號—另請參閱嵌套的 arg 元素。 |
否 |
發生錯誤時失敗 | 如果命令以 0以外的回傳碼結束,則停止建置程序。 |
否 |
發生警告時失敗 | 如果發出警告,則停止建置程序—亦即,如果 javadoc 的輸出包含字詞 warning。自 Ant 1.9.4 起 |
否 |
排除套件名稱 | 您不想要的文件說明的套件逗號分隔清單—另請參閱嵌套的 excludepackage 元素。 |
否 |
預設排除 | 指示是否應使用預設排除 (yes|no)。 |
否;預設為 yes |
使用外部檔案 | 指示是否應將在 srcfiles 或作為嵌套的 source 元素指定的原始檔名稱寫入暫時檔案,以縮短命令列。也適用於透過 packagenames 屬性或嵌套的 package 元素指定的套件名稱。自 Ant 1.7.0 起,也適用於所有其他命令列選項。(yes|no)。 如果啟用,檔案將寫入 暫時目錄。 |
否;預設為 no |
來源 | 啟用 javadoc 以處理 Java 語言功能。將此設定為 1.4以記錄使用 javac -source 1.4 編譯的程式碼等。 |
否;預設值可以使用神奇 ant.build.javac.source 屬性提供。 |
連結來源 | 產生至原始檔的超連結。自 Ant 1.6 起。(yes|no)。 |
否;預設為 no |
中斷迭代器 | 使用新的斷行迭代演算法。自 Ant 1.6 起。(是|否)。 |
否;預設為 no |
noqualifier | 啟用 -noqualifier 參數—必須為 all或由冒號分隔的套件清單。自 Ant 1.6 起。 |
否 |
includenosourcepackages | 如果設定為 true,不包含 Java 原始碼但包含 package.html 的套件也會記錄。自 Ant 1.6.3 起。 |
否;預設為 false |
executable | 指定要使用的特定 javadoc 可執行檔,取代預設二進位檔(與 Ant 執行時所在的 JDK 相同)。自 Ant 1.6.3 起。注意:您必須確保此命令支援您想要使用的屬性。 | 否 |
docfilessubdirs | 啟用 doc-files 子目錄的深度複製。自 Ant 1.8.0 起。 | 否;預設為 false |
excludedocfilessubdir | 如果 docfilessubdirs 為 true,則為要排除的 doc-files 子目錄的冒號分隔清單。自 Ant 1.8.0 起。 | 否 |
postProcessGeneratedJavadocs | 是否要後處理產生的 javadocs 以減輕 CVE-2013-1571。自 Ant 1.9.2 起 在 Java 7 更新 25 之前的 Oracle JDK 產生的 javadocs 中,可能會發生框架注入攻擊(詳細資料)。當此旗標設定為 true時,Ant 會檢查文件是否容易受到攻擊,並嘗試修復它們。 |
否;預設為 true |
modulesourcepath | 指定尋找模組原始碼檔案的位置自 Ant 1.10.6 起 | 否 |
modulesourcepathref | 透過 參照 其他地方定義的 PATH,指定尋找模組原始碼檔案的位置。自 Ant 1.10.6 起 | 否 |
modulepath | 指定尋找模組檔案的位置自 Ant 1.10.6 起 | 否 |
modulepathref | 透過 參照 其他地方定義的 PATH,指定尋找模組檔案的位置。自 Ant 1.10.6 起 | 否 |
參數以逗號分隔。每個單一參數是 2 個以空白分隔的字串,其中第一個是群組標題,第二個是套件的冒號分隔清單。
如果您需要指定多個群組,或群組標題包含逗號或空白字元,強烈建議使用 巢狀 group
元素。
例如。
group="XSLT_Packages org.apache.xalan.xslt*,XPath_Packages org.apache.xalan.xpath*"
一個 DirSet。所有包含 Java 原始檔的相符目錄將作為套件名稱傳遞給 javadoc。套件名稱由目錄名稱建立,方法是將目錄分隔符轉換為點。Ant 假設 packageset
的基本目錄指向套件階層的根目錄。
工作項的 packagenames、excludepackagenames 和 defaultexcludes 屬性對巢狀的 <packageset>
元素沒有影響。
一個 FileSet。所有相符的檔案將作為原始檔傳遞給 javadoc。Ant 會自動將包含模式 **/*.java(如果 includenosourcepackages 為 true
,則為 **/package.html)新增到這些檔案集。
巢狀檔案集可用於記錄預設套件中的來源,或者如果您想從文件記錄中排除某些檔案。如果您想記錄所有原始檔,且不使用預設套件,則應改用 packageset
,因為這會提升 javadoc 的效能。
工作項的 packagenames、excludepackagenames 和 defaultexcludes 屬性對巢狀的 <fileset>
元素沒有影響。
一個用於任意基於檔案系統的 資源集合 的容器。任何巢狀集合(包括巢狀檔案集、檔案清單或路徑)中包含的所有檔案都將作為原始檔傳遞給 javadoc。
與 packagenames 給出的清單中的其中一項相同。
屬性 | 說明 | 必要 |
---|---|---|
name | 套件名稱(可能是萬用字元) | 是 |
與 excludepackagenames 給出的清單中的其中一項相同。
package
相同。
自 Ant 1.10.6 起
與 modulenames
給出的清單中的其中一項相同。
屬性 | 說明 | 必要 |
---|---|---|
name | 模組名稱 | 是 |
與 sourcefiles 給出的清單中的其中一項相同。
屬性 | 說明 | 必要 |
---|---|---|
file | 要記錄的原始檔 | 是 |
與 doctitle 屬性相同,但您可以使用這種方式將文字巢狀在元素內。
如果巢狀文字包含換行符,您必須使用 useexternalfile 屬性,並將其設定為 true
。
類似於 <doctitle>
。
類似於 <doctitle>
。
類似於 <doctitle>
。
在指定的 URL 建立連結到 javadoc 輸出。這會執行與 link 和 linkoffline 屬性相同的作用。您可以使用任一語法(或同時使用),但使用巢狀元素,您可以輕鬆指定參數的多個執行個體。
屬性 | 說明 | 必要 |
---|---|---|
href | 您想要連結到的外部文件網址。這可以是絕對網址,或相對檔案名稱。 | 是 |
offline | 如果在產生文件時,此連結無法在線上取得,則為true |
否 |
packagelistLoc | 外部文件 package-list 檔案所在目錄的位置 | 如果 offline 屬性為 true,則為兩個屬性之一 |
packagelistURL | 外部文件 package-list 檔案所在目錄的網址 | |
resolveLink | 如果 link 屬性是相對檔案名稱,Ant 會先嘗試根據目前專案的 basedir 找出檔案,如果在那裡找到檔案,則會使用 link 屬性的絕對網址,否則會將檔案名稱原封不動地傳遞給 javadoc 指令。 | 否;預設為 false |
將概觀頁面上的套件分隔成您指定的群組,每個表格一個群組。這與 group 屬性扮演相同角色。您可以使用任一種語法(或同時使用兩種語法),但透過巢狀元素,您可以輕鬆指定參數的多個執行個體。
屬性 | 說明 | 必要 |
---|---|---|
title | 群組標題 | 是,除非給定巢狀 <title> |
packages | 要包含在該群組中的套件清單。多個套件以 :分隔。 |
是,除非給定巢狀 <package> |
標題可以指定為包含文字內容的巢狀 <title>
元素,而套件可以列在巢狀 <package>
元素中,就像主工作一樣。
doclet 巢狀元素用於指定 javadoc 將用來處理輸入原始檔的 doclet。許多標準 javadoc 參數實際上是標準 doclet 的參數。如果這些參數指定在 javadoc
工作的屬性中,它們將傳遞給 <doclet>
巢狀元素中指定的 doclet。因此,只有當這些屬性可以由正在使用的 doclet 解釋時,才應該指定這些屬性。
如果 doclet 需要其他參數,則可以使用 <doclet>
元素中的 <param>
元素指定這些參數。這些參數僅限於簡單字串。以下是 doclet
元素的範例用法
<javadoc ... > <doclet name="theDoclet" path="path/to/theDoclet"> <param name="-foo" value="foovalue"/> <param name="-bar" value="barvalue"/> </doclet> </javadoc>
如果您想使用巢狀 tag
元素指定標準標籤,因為您想要決定標籤的輸出順序,則不能設定這些標籤的 description 屬性。
屬性 | 說明 | 必要 |
---|---|---|
name | 標籤名稱(例如 todo) |
是,除非指定了 dir 屬性 |
說明 | 標籤說明(例如 待辦事項:) |
否,如果未指定此項,javadoc 可執行檔會選取預設值 |
已啟用 | 標籤是否已啟用 | 否;預設為 true |
範圍 | 標籤範圍,也就是可使用此標籤的元素。這是下列部分元素的逗號分隔清單:概觀、 套件、 類型、 建構函式、 方法、 欄位或預設值 全部。 |
否;預設為 全部 |
目錄 | 如果指定了此屬性,這個元素會表現為隱含的 檔案集。此檔案集包含的檔案應在個別行中包含每個標籤定義,如 Javadoc 參考指南 中所述
ejb.bean:t:XDoclet EJB Tag todo:a:To Do注意:Javadoc 參考指南在定義說明部分周圍加上雙引號。當在檔案中使用時,此方法無法運作,因為在傳送給 javadoc 程式時,定義會再次加上引號。 注意:如果指定了此屬性,此元素中的所有其他屬性都會被忽略。 |
否 |
屬性 | 說明 | 必要 |
---|---|---|
name | 標籤類別名稱(例如 com.sun.tools.doclets.ToDoTaglet ) |
是 |
路徑 | 指定標籤類別搜尋路徑的路徑(例如 /home/taglets)。路徑也可以透過巢狀 <path> 元素指定 |
否 |
Javadoc
的 來源路徑、類別路徑、開機類別路徑、模組路徑 和 模組來源路徑 屬性是 類似 PATH 的結構,也可以分別透過巢狀 來源路徑、類別路徑、開機類別路徑、模組路徑 和 模組來源路徑 元素設定。
自 Ant 1.6 起
使用巢狀 <arg>
指定其他引數。請參閱 命令列引數。
<javadoc packagenames="com.dummy.test.*" sourcepath="src" excludepackagenames="com.dummy.test.doc-files.*" defaultexcludes="yes" destdir="docs/api" author="true" version="true" use="true" windowtitle="Test API"> <doctitle><![CDATA[<h1>Test</h1>]]></doctitle> <bottom><![CDATA[<i>Copyright © 2000 Dummy Corp. All Rights Reserved.</i>]]></bottom> <tag name="todo" scope="all" description="To do:"/> <group title="Group 1 Packages" packages="com.dummy.test.a*"/> <group title="Group 2 Packages" packages="com.dummy.test.b*:com.dummy.test.c*"/> <link offline="true" href="https://docs.oracle.com/javase/8/docs/api/" packagelistLoc="C:\tmp"/> <link href="https://docs.oracle.com/javase/8/docs/api/"/> </javadoc>
等同於
<javadoc destdir="docs/api" author="true" version="true" use="true" windowtitle="Test API"> <packageset dir="src" defaultexcludes="yes"> <include name="com/dummy/test/**"/> <exclude name="com/dummy/test/doc-files/**"/> </packageset> <doctitle><![CDATA[<h1>Test</h1>]]></doctitle> <bottom><![CDATA[<i>Copyright © 2000 Dummy Corp. All Rights Reserved.</i>]]></bottom> <tag name="todo" scope="all" description="To do:"/> <group title="Group 1 Packages" packages="com.dummy.test.a*"/> <group title="Group 2 Packages" packages="com.dummy.test.b*:com.dummy.test.c*"/> <link offline="true" href="https://docs.oracle.com/javase/8/docs/api/" packagelistLoc="C:\tmp"/> <link href="https://docs.oracle.com/javase/8/docs/api/"/> </javadoc>
或
<javadoc destdir="docs/api" author="true" version="true" use="true" windowtitle="Test API"> <fileset dir="src" defaultexcludes="yes"> <include name="com/dummy/test/**"/> <exclude name="com/dummy/test/doc-files/**"/> </fileset> <doctitle><![CDATA[<h1>Test</h1>]]></doctitle> <bottom><![CDATA[<i>Copyright © 2000 Dummy Corp. All Rights Reserved.</i>]]></bottom> <tag name="todo" scope="all" description="To do:"/> <group title="Group 1 Packages" packages="com.dummy.test.a*"/> <group title="Group 2 Packages" packages="com.dummy.test.b*:com.dummy.test.c*"/> <link offline="true" href="https://docs.oracle.com/javase/8/docs/api/" packagelistLoc="C:\tmp"/> <link href="https://docs.oracle.com/javase/8/docs/api/"/> </javadoc>