Quality Outreach Heads-up – Annotation Processing Change

原文はこちら。
The original article was written by Joe Darcy (Consulting Member of Technical Staff, Oracle).
https://inside.java/2023/07/29/quality-heads-up/

OpenJDK Quality Groupは、リリースの全体的な品質向上の手段としてOpenJDK Early Accessビルドを使ってのFOSSプロジェクトのテストを推進しています。

Quality Outreach
https://wiki.openjdk.java.net/display/quality/Quality+Outreach

このHeads upは、関係するプロジェクトに送られる定期的なコミュニケーションの一部です。

JDK 22 is in Rampdown Phase 2 | Annotation Processing Change Heads-up
https://mail.openjdk.org/pipermail/quality-discuss/2023-July/001122.html
https://mail.openjdk.org/pipermail/quality-discuss/2023-July/001123.html

このプログラムの詳細と参加方法については、上記wikiをご覧ください。

JDK 21 & JDK 22: Note if implicit annotation processing is being used

javacによるアノテーション処理がデフォルトで有効化されています。これはアノテーション処理の設定オプションがない場合にも同様ですが、将来のリリースで、早ければJDK 22で、暗黙的アノテーション処理のデフォルトでの無効化を検討中です。

[JDK-8306819] Consider disabling the compiler’s default active annotation processing
https://bugs.openjdk.org/browse/JDK-8306819

この変更可能性をjavacユーザーに警告するため、JDK 21 b29とJDK 22 b04の時点で、javacは暗黙的アノテーション処理が使用されている場合に注意を表示するようになっています。

[JDK-8310061] Note if implicit annotation processing is being used
https://bugs.openjdk.org/browse/JDK-8310061

表示される注意書きは次のとおりです:

Annotation processing is enabled because one or more processors were found on the class path. A future release of javac may disable annotation processing unless at least one processor is specified by name (-processor), or a search path is specified (--processor-path--processor-module-path), or annotation processing is enabled explicitly (-proc:only-proc:full). Use -Xlint:-options to suppress this message. Use -proc:none to disable annotation processing.
クラスパス上に1つ以上のプロセッサが見つかったため、アノテーション処理が有効化されています。javacの将来のリリースでは、少なくとも1つのプロセッサが、①名前(-processor)で指定される、②検索パスが指定される(–processor-path、–processor-module-path)、③アノテーション処理が明示的に有効にされる(-proc:only-proc:full) でない限り、アノテーション処理が無効化される可能性があります。このメッセージを表示しないようにするには、-Xlint:-optionsを使用してください。アノテーション処理を無効にするには -proc:none を使用してください。

優れたビルドの衛生管理には、アノテーション処理の明示的な設定が含まれます。将来の異なるデフォルト・ポリシーへの移行を容易にするため、JDK 21の新しい-proc:fullというjavacオプションでは、クラスパス上のアノテーションプロセッサを探すという現在のデフォルトの動作を指示します。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください