Javadocに関しては、JDK8の方が(デフォルトで)より厳密であることをすぐに理解できます。(リンク -最後の箇条書きを参照)
Javadocを生成しない場合は、もちろん問題は発生しませんが、MavenリリースプロセスやCIビルドなどの問題が発生し、JDK7で正常に機能した場合に突然失敗します。Javadocツールの終了値をチェックするものはすべて失敗するようになりました。JDK8のJavadocはwarnings
、JDK7 に比べておそらくもっと冗長ですが、ここでは範囲を広げません。私たちは話しているerrors
!
この質問は、それについて何をすべきかについての提案を収集するために存在します。最善のアプローチは何ですか?これらのエラーはソースコードファイルで一度だけ修正する必要がありますか?巨大なコードベースがある場合、これは多くの作業になる可能性があります。他にどのようなオプションがありますか?
以前失敗したことのある、今失敗したことについてのコメントも歓迎します。
今失敗するもののホラーストーリー
wsimportツール
wsimport
ツールは、Webサービスコンシューマーを作成するためのコードジェネレーターです。JDKに含まれています。wsimport
JDK8 のツールを使用しても、JDK8 のjavadocコンパイラでコンパイルできないソースコードが生成されます。
@authorタグ
私は3〜4年前のソースコードファイルを開いて、次のように表示します。
/**
* My very best class
* @author John <john.doe@mine.com>
*/
これは、<文字のために失敗します。厳密に言えばこれは正当化されますが、それほど寛容ではありません。
HTMLテーブル
JavadocのHTMLテーブル?次の有効なHTMLを検討してください。
/**
*
* <table>
* <tr>
* <td>Col1</td><td>Col2</td><td>Col3</td>
* </tr>
* </table>
*/
これはエラーメッセージで失敗しますno summary or caption for table
。簡単な修正の1つは、次のようにすることです。
/**
*
* <table summary="">
* <tr>
* <td>Col1</td><td>Col2</td><td>Col3</td>
* </tr>
* </table>
*/
しかし、なぜこれがJavadocツールからの世界一のエラーでなければならないのですか?
より明白な理由で失敗するもの
- 無効なリンク、例えば
{@link notexist}
- 不正なHTML、例えば
always returns <code>true<code> if ...
更新
リンク:
Stephen Colebourneによる主題に関する優れたブログ。
-Xdoclint
て、javac
コンパイル中にドキュメントをチェックするように指示することもできます...