zhuguowei
zhuguowei

Reputation: 8477

Does Project Lombok support Java 9?

I have used Lombok in my project, but my colleague do not agree to use it, and his reason is (from controversy of lombok documents

Both of these pieces of Project Lombok make use of non-public APIs to accomplish their sorcery. This means that there is a risk that Project Lombok will be broken with subsequent IDE or JDK releases.

But it's a very old document written in 2010, maybe now it has resolved the problem, so I want to know if Lombok will support Java 9 and does it still use the non-public API:s?

Upvotes: 36

Views: 18280

Answers (4)

Ashish Khandelwal
Ashish Khandelwal

Reputation: 659

Since the status of lombok for Java 9 is tracked here.

For hints on why this is an issue, see this blog post which explains some of the "tricks"/"hacks"

Upvotes: 2

Nicolai Parlog
Nicolai Parlog

Reputation: 51040

The Lombok project has an issue tracking Java 9 support. As of January 9th 2018 and version 1.16.20, Lombok officially supports Java 9. From the changelog:

  • PLATFORM: Better support for jdk9 in the new IntelliJ, Netbeans and for Gradle.
  • BREAKING CHANGE: lombok config key lombok.addJavaxGeneratedAnnotation now defaults to false instead of true. Oracle broke this annotation with the release of JDK9, necessitating this breaking change.
  • BREAKING CHANGE: lombok config key lombok.anyConstructor.suppressConstructorProperties is now deprecated and defaults to true, that is, by default lombok no longer automatically generates @ConstructorProperties annotations. New config key lombok.anyConstructor.addConstructorProperties now exists; set it to true if you want the old behavior. Oracle more or less broke this annotation with the release of JDK9, necessitating this breaking change.
  • DEVELOPMENT: Compiling lombok on JDK1.9 is now possible.

(At the moment, it is no module, though, so you need to place it on the class path. Thanks Tos' answer, which first mentioned this.)

Upvotes: 47

Tos
Tos

Reputation: 31

The issue appears to be resolved since 9 January 2018: https://github.com/rzwitserloot/lombok/issues/985#issuecomment-356135454

Per Lombok version 1.16.20 Java 9 is supported.

Upvotes: 3

Randakar
Randakar

Reputation: 1035

The current status of lombok for Java 9 is tracked here: https://github.com/rzwitserloot/lombok/issues/985

As of right now this bug is still open and (apparently) actively being worked on. There is an edge release out there that solves most of the issues so at this point it looks like all you need to do is wait..

Upvotes: 4

Related Questions