原文はこちら。
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
オプションでは、クラスパス上のアノテーションプロセッサを探すという現在のデフォルトの動作を指示します。