Javadoc/Javadoc2

非推奨: javadoc2タスクは単にjavadocタスクを指すだけであり、後方互換性のために存在しています。このタスクは将来のバージョンで削除される予定ですので、代わりにjavadocを使用することを強くお勧めします。

説明

javadocツールを使用してコードドキュメントを生成します。

ソースディレクトリは、処理対象となるJavaソースファイルを探して再帰的にスキャンされますが、インクルールールに一致し、除外ルールに一致しないもののみがjavadocツールに渡されます。これにより、ワイルドカードを使用してパッケージ名を選択できるため、冗長さを減らし、時間の経過に伴う管理コストを削減できます。ただし、このタスクにはjavacタスクとは異なり、「変更された」ファイルの概念はありません。つまり、このタスクが実行されるたびにすべてのパッケージが処理されます。ただし、一般的に、このタスクの使用頻度ははるかに低いです。

:javadocSystem.exit()を呼び出すため、機能を壊さずにApache Antと同じJVM内でjavadocを実行することはできません。このため、このタスクは常にJVMをフォークします。javadocは通常、負荷の高いアプリケーションであり、呼び出される頻度が少ないため、このオーバーヘッドはそれほど大きくありません。

:packagelist属性を使用すると、Antファイルの外でドキュメント化するパッケージのリストを指定できます。すべてのものをbuild.xmlファイル内に含める方がはるかに良い方法です。このオプションは、javadocのこのオプションを使用する通常のMakefileからの移行を容易にするために追加されました。packagelistにリストされているパッケージはチェックされないため、一部のパッケージが欠落または破損していてもタスクは実行されます。既存のMakefileから変換する場合は、このオプションを使用してください。実行が開始されたら、通常の表記法に切り替える必要があります。

:アノテーションを含むクラスのJavaDocsを生成するときに、java.lang.ClassCastException: com.sun.tools.javadoc.ClassDocImplが発生する場合があります。これはバグ6442982が原因です。原因は、javadocが使用されているアノテーションの実装を見つけられないことです。回避策は、JAXBの@XmlTypeなどの実装を含むJARを、classpathclasspathref属性、またはネストされた<classpath>要素を使用して<javadoc>に提供することです。

:javadocの実行に関する多くの問題は、コマンドラインが長くなりすぎたことに起因します。エラーメッセージにはこれが問題であるというヒントはまったくありませんが。タスクで問題が発生した場合は、最初にuseexternalfile属性をtrueに設定してみてください。

javadocがソースを検索する場所を指定する方法を複数使用すると、結果は指定されたすべてのドキュメントの結合になります。たとえば、sourcepath属性と、同じディレクトリを指すネストされたpackagesetの両方を指定した場合、excludepackagenames属性は、packagesetexcludeパターンと一致しない限り効果がありません(逆もまた同様)。

パラメーター

属性 説明 必須
sourcepath ソースファイルを見つける場所を指定します 4つのうち少なくとも1つ、またはネストされた<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 インストールされた拡張機能の場所を上書きします いいえ
Overview HTMLファイルから概要ドキュメントを読み取ります いいえ
access アクセスモード:publicprotectedpackage、またはprivateのいずれか いいえ。デフォルトはprotectedです。
Public パブリッククラスとメンバーのみを表示します いいえ
Protected 保護された/パブリッククラスとメンバーを表示します(デフォルト) いいえ
Package パッケージ/保護された/パブリッククラスとメンバーを表示します いいえ
Private すべてのクラスとメンバーを表示します いいえ
Old JDK 1.1エミュレートドックレットを使用して出力を生成します。
:この属性は、JDK 1.4より前の外部javadocを使用している場合を除き、効果はありません
いいえ
Verbose javadocが何をしているかに関するメッセージを出力します いいえ
Locale 使用するロケール。例:en_USまたはen_US_WIN いいえ
Encoding ソースファイルエンコーディング名 いいえ
Version @versionパラグラフを含めます いいえ
Use クラスおよびパッケージの使用状況ページを作成します いいえ
Author @authorパラグラフを含めます いいえ
Splitindex インデックスを文字ごとに1つのファイルに分割します いいえ
Windowtitle ドキュメントのブラウザウィンドウタイトル(テキスト) いいえ
Doctitle パッケージインデックス(最初)ページのタイトル(HTMLコード)を含めます いいえ
Header 各ページのヘッダーテキスト(HTMLコード)を含めます いいえ
Footer 各ページのフッターテキスト(HTMLコード)を含めます いいえ
bottom 各ページの下部テキスト(HTMLコード)を含めます いいえ
link 指定されたURLのjavadoc出力へのリンクを作成します。ネストされたlink要素も参照してください。 いいえ
linkoffline urlのドキュメントへのリンクを、alt-urlのパッケージリストを使用して、値url alt-url(区切り文字としてスペース)を指定して作成します。ネストされたlink要素の短縮形(offline=true)。 いいえ
group 概要ページで指定されたパッケージをグループ化します。形式は下記で説明されています。ネストされたgroup要素も参照してください。 いいえ
nodeprecated @deprecated情報を含めません いいえ
nodeprecatedlist 非推奨リストを生成しません いいえ
notree クラス階層を生成しません いいえ
noindex インデックスを生成しません いいえ
nohelp ヘルプリンクを生成しません いいえ
nonavbar ナビゲーションバーを生成しません いいえ
serialwarn @serialタグに関する警告を生成します いいえ
helpfile 使用するHTMLヘルプファイルを指定します いいえ
stylesheetfile 使用するCSSスタイルシートを指定します いいえ
charset 生成されたドキュメントをクロスプラットフォームで表示するための文字セット いいえ
docencoding 出力ファイルエンコーディング名 いいえ
doclet ドキュメントの生成に使用されるドックレットを開始するクラスファイルを指定します。ネストされたdoclet要素も参照してください。 いいえ
docletpath -docletオプションで指定されたドックレットクラスファイルへのパスを指定します。 いいえ
docletpathref 別の場所で定義されたパスへの参照によって、-docletオプションで指定されたドックレットクラスファイルへのパスを指定します。 いいえ
additionalparam javadocコマンドラインに追加のパラメーターを追加できます。ドックレットに役立ちます。スペースを含むパラメーターは、&quot;を使用して引用符で囲む必要があります。ネストされたarg要素も参照してください。 いいえ
failonerror コマンドが0以外のリターンコードで終了した場合、ビルドプロセスを停止します。 いいえ
failonwarning 警告が出力された場合、つまり、javadocの出力にwarningという単語が含まれている場合、ビルドプロセスを停止します。Ant 1.9.4以降 いいえ
excludepackagenames ドキュメントを作成したくないパッケージのカンマ区切りリスト。ネストされたexcludepackage要素も参照してください。 いいえ
defaultexcludes デフォルトの除外を使用するかどうかを示します(yes|no)。 いいえ。デフォルトはyesです
useexternalfile srcfilesまたはネストされたsource要素で指定されたソースファイル名を一時ファイルに書き込み、コマンドラインを短くするかどうかを示します。packagenames属性またはネストされたpackage要素を介して指定されたパッケージ名にも適用されます。Ant 1.7.0以降、他のすべてのコマンドラインオプションにも適用されます。(yes|no)。
有効にすると、ファイルは一時ディレクトリに書き込まれます。
いいえ。デフォルトはnoです
source javadocがJava言語機能を処理できるようにします。javac -source 1.4を使用してコンパイルするコードをドキュメント化するには、これを1.4に設定します。 いいえ。デフォルトはマジックant.build.javac.sourceプロパティを使用して指定できます。
linksource ソースファイルへのハイパーリンクを生成します。Ant 1.6以降。(yes|no)。 いいえ。デフォルトはnoです
breakiterator 新しいブレークイテレーターアルゴリズムを使用します。Ant 1.6以降。(yes|no)。 いいえ。デフォルトはnoです
noqualifier -noqualifier引数を有効にします。allであるか、コロンで区切られたパッケージのリストである必要があります。Ant 1.6以降 いいえ
includenosourcepackages trueに設定すると、Javaソースを含まないが、package.htmlを含むパッケージもドキュメント化されます。Ant 1.6.3以降 いいえ。デフォルトはfalseです
executable デフォルトのバイナリ(Antが実行されているJDKと同じJDKにある)の代わりに、使用する特定のjavadoc実行可能ファイルを指定します。Ant 1.6.3以降注:このコマンドが使用したい属性をサポートしていることを確認するのはユーザーの責任です。 いいえ
docfilessubdirs doc-filesサブディレクトリのディープコピーを有効にします。Ant 1.8.0以降 いいえ。デフォルトはfalseです
excludedocfilessubdir docfilessubdirsがtrueの場合に除外するdoc-filesサブディレクトリのコロン区切りリスト。Ant 1.8.0以降 いいえ
postProcessGeneratedJavadocs CVE-2013-1571を軽減するために、生成されたjavadocを後処理するかどうか。Ant 1.9.2以降
Java 7 update 25より前のOracle JDKで生成されたjavadocには、フレームインジェクション攻撃が可能です(詳細)。このフラグが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以降 いいえ

group属性の形式

引数はカンマ区切りです。各単一の引数は2つのスペース区切りの文字列で、最初の文字列はグループのタイトルであり、2番目の文字列はコロン区切りのパッケージリストです。

複数のグループ、またはタイトルにカンマやスペース文字が含まれているグループを指定する必要がある場合は、ネストされたgroup要素を使用することを強くお勧めします。

例:

group="XSLT_Packages org.apache.xalan.xslt*,XPath_Packages org.apache.xalan.xpath*"

ネストされた要素として指定されたパラメーター

packageset

DirSet。Javaソースファイルを含む一致するすべてのディレクトリは、パッケージ名としてjavadocに渡されます。パッケージ名は、ディレクトリ区切り文字をドットに変換することにより、ディレクトリ名から作成されます。Antは、packagesetのベースディレクトリがパッケージ階層のルートを指していると想定します。

タスクのpackagenamesexcludepackagenames、およびdefaultexcludes属性は、ネストされた<packageset>要素には影響しません。

fileset

FileSetです。マッチしたすべてのファイルがソースファイルとしてjavadocに渡されます。Antは、これらのファイルセットに、インクルードパターン**/*.java(およびincludenosourcepackagestrueの場合は**/package.html)を自動的に追加します。

ネストされたファイルセットは、デフォルトパッケージにあるソースをドキュメント化したり、特定のファイルをドキュメントから除外したりする場合に使用できます。すべてのソースファイルをドキュメント化し、デフォルトパッケージを使用しない場合は、代わりにpackagesetを使用する必要があります。これにより、javadocのパフォーマンスが向上します。

タスクのpackagenamesexcludepackagenames、およびdefaultexcludes属性は、ネストされた<fileset>要素には影響しません。

sourcefiles

任意のファイルシステムベースのリソースコレクションのコンテナです。ネストされたコレクション(ネストされたファイルセット、ファイルリスト、またはパスを含む)に含まれるすべてのファイルが、ソースファイルとしてjavadocに渡されます。

package

packagenamesで指定されたリストの1つのエントリと同じです。

パラメーター
属性 説明 必須
name パッケージ名(ワイルドカード可) はい

excludepackage

excludepackagenamesで指定されたリストの1つのエントリと同じです。

パラメーター
packageの場合と同じです。

module

Ant 1.10.6以降

modulenamesで指定されたリストの1つのエントリと同じです。

パラメーター
属性 説明 必須
name モジュール名 はい

source

sourcefilesで指定されたリストの1つのエントリと同じです。

パラメーター
属性 説明 必須
file ドキュメント化するソースファイル はい

doctitle

doctitle属性と同じですが、このように要素内にテキストをネストできます。

ネストされたテキストに改行が含まれている場合は、useexternalfile属性を使用し、trueに設定する必要があります。

header

<doctitle>と同様です。

footer

<doctitle>と同様です。

bottom

<doctitle>と同様です。

link

指定されたURLでjavadoc出力へのリンクを作成します。これは、linkおよびlinkoffline属性と同じ役割を果たします。どちらの構文(または両方を同時に)使用できますが、ネストされた要素を使用すると、引数の複数の出現を簡単に指定できます。

パラメーター
属性 説明 必須
href リンク先の外部ドキュメントのURL。これは絶対URL、または相対ファイル名にすることができます。 はい
offline ドキュメントを生成する時点で、このリンクがオンラインで利用できない場合はtrue いいえ
packagelistLoc 外部ドキュメントのpackage-listファイルを含むディレクトリの場所 offline属性がtrueの場合の2つのうちの1つ
packagelistURL 外部ドキュメントのpackage-listファイルを含むディレクトリのURL
resolveLink link属性が相対ファイル名の場合、Antは最初に現在のプロジェクトのbasedirを基準にしてファイルを検索し、そこでファイルが見つかった場合はlink属性に絶対URLを使用します。それ以外の場合は、ファイル名をそのままjavadocコマンドに渡します。 いいえ。デフォルトはfalseです

group

指定したグループごとに1つのテーブルで、概要ページのパッケージを区切ります。これは、group属性と同じ役割を果たします。どちらの構文(または両方を同時に)使用できますが、ネストされた要素を使用すると、引数の複数の出現を簡単に指定できます。

パラメーター
属性 説明 必須
title グループのタイトル ネストされた<title>が指定されていない限り、はい
packages そのグループに含めるパッケージのリスト。複数のパッケージは:で区切られます。 ネストされた<package>が指定されていない限り、はい

タイトルは、テキストコンテンツを持つネストされた<title>要素として指定でき、パッケージはメインタスクと同様にネストされた<package>要素でリストできます。

doclet

docletネスト要素は、javadocが入力ソースファイルを処理するために使用するドックレットを指定するために使用されます。標準のjavadoc引数の多くは、実際には標準ドックレットの引数です。これらがjavadocタスクの属性で指定されている場合、<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

タグが出力される順序を決定するために、ネストされたtag要素を使用して標準タグを指定する場合は、これらのタグにdescription属性を設定しないでください。

パラメーター
属性 説明 必須
name タグの名前(例:todo dir属性が指定されていない限り、はい
description タグの説明(例:To do: いいえ。指定されていない場合は、javadoc実行可能ファイルがデフォルトを選択します
enabled タグが有効かどうか いいえ。デフォルトはtrueです
scope タグのスコープ—タグを使用できる要素。これは、overviewpackagestypesconstructorsmethodsfields、またはデフォルトのallなどの要素のコンマ区切りリストです。 いいえ。デフォルトはall
dir この属性が指定されている場合、この要素は暗黙的なfilesetとして動作します。このファイルセットに含まれるファイルには、Javadocリファレンスガイドで説明されているように、各タグ定義が別々の行に含まれている必要があります。
ejb.bean:t:XDoclet EJB Tag
todo:a:To Do
注意:Javadocリファレンスガイドには、定義の説明部分を囲む二重引用符があります。これは、ファイルで使用する場合、定義がjavadocプログラムに渡されるときに再度引用符で囲まれるため、機能しません。
注意:この属性が指定されている場合、この要素の他のすべての属性は無視されます。
いいえ

taglet

tagletネスト要素は、デフォルトのタグレット以外のカスタムタグレットを指定するために使用されます。

パラメーター
属性 説明 必須
name タグレットクラスの名前(例:com.sun.tools.doclets.ToDoTaglet はい
path タグレットクラスの検索パスを指定するパス(例:/home/taglets)。パスは、ネストされた<path>要素で指定することもできます。 いいえ

sourcepath、classpath、bootclasspath、modulepath、modulesourcepath

Javadocsourcepathclasspathbootclasspathmodulepath、およびmodulesourcepath属性は、PATHのような構造であり、ネストされたsourcepathclasspathbootclasspathmodulepath、およびmodulesourcepath要素をそれぞれ介して設定することもできます。

arg

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 &#169; 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 &#169; 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 &#169; 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>