私はプロジェクトでロンボクを使用しましたが、私の同僚はそれを使用することに同意しません、そして彼の理由は( ロンボク文書の論争 )
Project Lombokのこれらの部分は両方とも、非パブリックAPIを使用してソーサリーを達成します。これは、Project Lombokが後続のIDEまたはJDKリリースで破損するリスクがあることを意味します。
しかし、それは2010年に書かれた非常に古い文書であり、おそらく今では問題を解決しているので、LombokがJava 9をサポートし、それでも非公開APIを使用するかどうかを知りたいです: ?
Lombokプロジェクトには 問題追跡Java 9サポート があります。2018年1月9日およびバージョン1.16.20の時点で、Lombokは公式にJava = 9.から 変更ログ :
- プラットフォーム:新しいIntelliJ、Netbeans、およびGradleでのjdk9のより良いサポート。
- 重大な変更:ロンボクの設定キー
lombok.addJavaxGeneratedAnnotation
のデフォルトはtrueではなくfalse
になりました。 OracleはJDK9のリリースでこの注釈を破り、この重大な変更を必要としました。- 重大な変更:ロンボクの設定キー
lombok.anyConstructor.suppressConstructorProperties
は廃止され、デフォルトはtrue
になります。つまり、デフォルトでは、lombokは@ConstructorProperties
注釈。新しい構成キーlombok.anyConstructor.addConstructorProperties
現在存在します。古い動作が必要な場合は、true
に設定します。 Oracleは、JDK9のリリースで多少なりともこの注釈を破り、この重大な変更を必要としました。- 開発:JDK1.9でlombokをコンパイルできるようになりました。
(現時点ではモジュールではありませんので、クラスパスに配置する必要があります。ありがとう Tosの答え 、これについて最初に言及しました。)
Java 9のlombokの現在のステータスはここで追跡されます: https://github.com/rzwitserloot/lombok/issues/985
現在のところ、このバグは未解決であり、(明らかに)積極的に取り組んでいます。ほとんどの問題を解決するEdgeのリリースがありますので、この時点であなたがする必要があるのは待つだけのように見えます。
この問題は2018年1月9日以降に解決されたようです: https://github.com/rzwitserloot/lombok/issues/985#issuecomment-356135454
Lombokバージョン1.16.20ごとJava 9がサポートされています。