[解決済み] Mavenを使用する際にJava 8のJavadocの厳しさを回避する方法
質問
JDK8はJavadocに関しては(デフォルトで)かなり厳しいことがすぐにわかると思います。( リンク - 最後の箇条書きを参照)
Javadoc を生成しないのであれば、もちろん問題は発生しませんが、Maven リリース プロセスや、おそらく CI ビルドなどが、JDK7 では問題なく動作していたのに突然失敗することになります。Javadocツールの終了値をチェックするようなものは、すべて失敗する。JDK8のJavadocは、おそらく、より冗長な
warnings
の点でもJDK7に比べて冗長になっていると思われますが、ここではその点については触れません。私たちが話しているのは
errors
!
この質問は、それについてどうしたらいいかという提案を集めるために存在します。最良の方法は何でしょうか? これらのエラーは、ソースコード・ファイル内で一旦、すべて修正されるべきでしょうか? もしあなたが巨大なコードベースを持っているならば、これは大変な作業かもしれません。他にどのようなオプションがありますか?
また、以前はパスしていたものが今は失敗しているというエピソードをコメントすることも歓迎します。
失敗したときの怖い話
wsimport ツール
wsimport
ツールは、ウェブサービスコンシューマを作成するためのコードジェネレータです。JDKに含まれています。たとえ
wsimport
ツールを使っても、ソースコードは生成されません。
でコンパイルできないソースコードが生成されます。
.
著者タグ
3-4年前のソースコードファイルを開いてみると、こんな感じです。
/**
* My very best class
* @author John <[email protected]>
*/
これは今、< 文字のために失敗しています。厳密に言えば、これは正当化されますが、あまり寛容ではありません。
HTML テーブル
JavadocにHTMLテーブルがありますか? これは有効な HTML と考えてください。
/**
*
* <table>
* <tr>
* <td>Col1</td><td>Col2</td><td>Col3</td>
* </tr>
* </table>
*/
これは現在、エラーメッセージで失敗しています
no summary or caption for table
. 手っ取り早いのは、このようにすることです。
/**
*
* <table summary="">
* <tr>
* <td>Col1</td><td>Col2</td><td>Col3</td>
* </tr>
* </table>
*/
が、なぜこれがJavadocツールのStop-the-Worldエラーでなければならないのか、私には理解できないのですが?
より明白な理由のために失敗するようになったもの
-
無効なリンク、例えば
{@link notexist}
-
不正なHTML、例えば
always returns <code>true<code> if ...
最新情報
リンク集です。
優れた ブログ によって スティーブン・コールボーン .
どのように解決するのですか?
今のところ、私が知っている最も簡単な方法は Maven を使用する際に、より厳しい Java 8 Javadoc を回避する。 を非アクティブにすることです。
パラメータ
-Xdoclint:none
というパラメーターは Java 8 にしか存在しないため、このパラメーターを定義すると他のどの Java でもビルドが中断されます。これを防ぐには、Java 8 に対してのみ有効なプロファイルを作成し、Java のバージョンに関係なくソリューションが動作するようにします。
<profiles>
<profile>
<id>disable-java8-doclint</id>
<activation>
<jdk>[1.8,)</jdk>
</activation>
<properties>
<additionalparam>-Xdoclint:none</additionalparam>
</properties>
</profile>
</profiles>
これをPOMに追加すればOKです。
maven-javadoc-plugin 3.0.0 ユーザーのために。
置き換える
<additionalparam>-Xdoclint:none</additionalparam>
で
<doclint>none</doclint>
ありがとう、@banterCZ!
関連
-
Methodのinvokeメソッド実装のJavaリフレクション
-
xxx:jarのアーティファクトディスクリプタの読み込みに失敗した問題は解決しました。
-
javax.net.ssl.SSLException: 読み取りエラー: ssl=0xdeae5100: システムコール中の I/O エラー、接続 res
-
[解決済み] Mavenを使用して、依存関係を持つ実行可能なJARを作成するにはどうすればよいですか?
-
[解決済み] ファイルの内容からJavaの文字列を作成するにはどうすればよいですか?
-
[解決済み] Javaの「for each」ループはどのように機能するのですか?
-
[解決済み] Javaで現在のスタックトレースを取得するにはどうすればよいですか?
-
[解決済み] Mavenに最新バージョンの依存関係を使用するように指示するにはどうすればよいですか?
-
[解決済み】JSP 2を使用して、JSPファイル内のJavaコードを回避するにはどうすればよいですか?
-
[解決済み】Java 8でJavadocタグが不完全な場合、Mavenは動作しません。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
java の例外が発生しました java
-
final, finally, finalizeの違いについて話してください。
-
Intellij IDEAのエラー「CreateProcess error=2, system could not find specified file」に対する完璧な解決策です。
-
Spring boot runs with Error creating bean with name 'entityManagerFactory' defined in class path resource
-
VMの初期化中にエラーが発生しました java/lang/NoClassDefFoundError: java/lang/Object
-
エラーの解決方法 jarfile XXX.jarにアクセスできません。
-
リソースの読み込みに失敗しました。サーバーはステータス500(内部サーバーエラー)で応答しました。
-
javaでクラスを作成すると、enclosing classでないように見える
-
Maven Pluginの実行がライフサイクル設定の対象外であるエラーの解決
-
[解決済み】Java 8でJavadocタグが不完全な場合、Mavenは動作しません。