NetBeansでJavadoc作成時にエラー
現在やっているプロジェクトではNetBeansを使っている。
Javadocを出力しようとした。プロジェクトを右クリックして「Javadocを作成」とかそんなのを選べば出来るはず。しかし以下のようなエラーが出て作成されない。
init:
javadoc-build:
Generating Javadoc
Javadoc execution
javadoc: フラグ -source は無効です。
使い方: javadoc [options] [packagenames] [sourcefiles] [classnames] [@files]
-overview HTML ファイルから概要ドキュメントを読み込む
-public public クラスとメンバのみを示す
-protected protected/public クラスとメンバを示す (デフォルト)
-package package/protected/public クラスとメンバを示す
-private すべてのクラスとメンバを示す
-help コマンド行オプションを表示する
-doclet 代替 doclet を介して出力を生成する
-docletpath doclet クラスファイルを探す場所を指定する
-1.1 JDK 1.1 エミュレート doclet を使って出力を生成する
-sourcepath ソースファイルのある場所を指定する
-classpath ユーザクラスファイルのある場所を指定する
-bootclasspath ブートストラップクラスローダによりロードされた
クラスファイルの位置をオーバーライドする
-extdirs 拡張機能がインストールされた位置をオーバーライドする
-verbose Javadoc の動作についてメッセージを出力する
-locale en_US や en_US_WIN などの使用するロケール
-encoding ソースファイルのエンコーディング名
-J を実行システムに直接渡す
標準の doclet により提供されるもの:
-d 出力ファイルの転送先ディレクトリ
-use クラスとパッケージの使用ページを作成する
-version @version パラグラフを含める
-author @author パラグラフを含める
-splitindex 1 字ごとに 1 ファイルに索引を分割する
-windowtitle ドキュメント用のブラウザウィンドウタイトル
-doctitle パッケージ索引 (先頭) ページにタイトルを含める
-header 各ページにヘッダを含める
-footer 各ページにフッタを含める
-bottom 各ページに下部テキストを含める
-link に javadoc 出力へのリンクを作成する
-linkoffline にあるパッケージリストを使用して の docs にリンクする
-group :.. 概要ページにおいて指定するパッケージをグループ化する
-nodeprecated @deprecated 情報を除外する
-nosince @since 情報を除外する
-nodeprecatedlist 非推奨 API のリストを生成しない
-notree クラス階層を生成しない
-noindex 索引を生成しない
-nohelp ヘルプリンクを生成しない
-nonavbar ナビゲーションバーを生成しない
-serialwarn @serial タグに関する警告を生成する
-charset 生成されるドキュメントの文字エンコーディング
-helpfile ヘルプリンクのリンク先ファイルを含める
-stylesheetfile 生成されたドキュメントのスタイル変更用ファイル
-docencoding 出力エンコーディング名
エラー 1 個
D:My DocumentsNetBeansProjectsxxxxbuild.xml:71: Javadoc returned 1
構築失敗 (合計時間: 0 秒)
エラー内容はjavadocコマンドが吐いているエラーそのまんまに見える。NetBeansによってどういう風にjavadocコマンドが実行されているかが分かれば一発で問題解決なんだけどなぁと思いつつも、エラーメッセージから何とか読み取ってみる。
どうやら -source というオプションがおかしいらしい。ていうか、そんなオプションは存在市内っぽい。
なんでそんなオプションが使われるんだろうと思って、build-impl.xmlを見てみると以下のような記述が。
<target depends="init" name="javadoc-build">
<mkdir dir="${dist.javadoc.dir}"/>
<javadoc additionalparam="${javadoc.additionalparam}" author="${javadoc.author}"
charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8"
encoding="${javadoc.encoding.used}" executable="${platform.javadoc}"
failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}"
notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}"
splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true"
version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
<classpath>
<path path="${javac.classpath}:${j2ee.platform.classpath}"/>
</classpath>
<sourcepath>
<pathelement location="${src.dir}"/>
</sourcepath>
<packageset dir="${src.dir}" includes="*/**"/>
<fileset dir="${src.dir}" includes="*.java"/>
</javadoc>
</target>
sourceって属性がいけないらしい。これをsourcepathにすればOKかな?build-impl.xmlのコメントを見ると、このファイルを直接修正するのはダメっぽいので、代わりに上の内容をコピーしてそれを一部修正してbuild.xmlに追加すると、build-impl.xmlの内容が上書きされる。変更点はsourceという属性名をsourcepathに変えたところだけ。
<target depends="init" name="javadoc-build">
<mkdir dir="${dist.javadoc.dir}"/>
<javadoc additionalparam="${javadoc.additionalparam}" author="${javadoc.author}"
charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8"
encoding="${javadoc.encoding.used}" executable="${platform.javadoc}"
failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}"
notree="${javadoc.notree}" private="${javadoc.private}"
sourcepath="${javac.source}"
splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true"
version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
<classpath>
<path path="${javac.classpath}:${j2ee.platform.classpath}"/>
</classpath>
<sourcepath>
<pathelement location="${src.dir}"/>
</sourcepath>
<packageset dir="${src.dir}" includes="*/**"/>
<fileset dir="${src.dir}" includes="*.java"/>
</javadoc>
</target>
環境を書き忘れたけど、NetBeans IDE 6.0.1