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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です