35

私は自分のプロジェクトで Lombok を使用しましたが、同僚はそれを使用することに同意しません。彼の理由は ( lombok ドキュメントの論争から)</p>

Project Lombok のこれらの部分はどちらも、非公開 API を利用して魔術を実行します。これは、Project Lombok が後続の IDE または JDK リリースで壊れるリスクがあることを意味します。

しかし、これは 2010 年に書かれた非常に古いドキュメントであり、おそらく現在は問題が解決されているので、Lombok が Java 9 をサポートするかどうか、また非公開 API を引き続き使用するかどうかを知りたいです。

4

4 に答える 4

46

Lombok プロジェクトには、Java 9 サポートを追跡する問題があります。2018 年 1 月 9 日およびバージョン 1.16.20 の時点で、Lombok は正式に Java 9 をサポートしています。変更ログから:

  • プラットフォーム: 新しい IntelliJ、Netbeans、および Gradle での jdk9 のサポートが向上しました。
  • 重大な変更: lombok 構成キーが true ではなくlombok.addJavaxGeneratedAnnotationデフォルトに設定されるようになりました。falseOracle は JDK9 のリリースでこのアノテーションを壊したため、この重大な変更が必要になりました。
  • BREAKING CHANGE: lombok 構成キーlombok.anyConstructor.suppressConstructorPropertiesは非推奨になり、デフォルトで に設定されました。つまり、デフォルトでは、lombok はアノテーションtrueを自動的に生成しなくなりました。@ConstructorProperties新しい構成キーlombok.anyConstructor.addConstructorPropertiesが存在するようになりました。true古い動作が必要な場合は、に設定します。Oracle は多かれ少なかれ、JDK9 のリリースでこのアノテーションを壊したため、この重大な変更が必要になりました。
  • 開発: JDK1.9 で lombok をコンパイルできるようになりました。

(ただし、現時点ではモジュールではないため、クラスパスに配置する必要があります。これについて最初に言及したTos' answerに感謝します。)

于 2017-01-07T13:00:48.843 に答える