Lombok项目是否支持Java 9?

时间:2017-01-07 10:40:59

标签: lombok java-9

我在项目中使用了Lombok,但我的同事不同意使用它,他的理由是(来自controversy of lombok documents

  

这两个项目Lombok都使用非公共API来完成他们的巫术。这意味着使用后续IDE或JDK版本可能会破坏Project Lombok的风险。

但它是2010年编写的一个非常古老的文档,也许现在已经解决了这个问题,所以我想知道Lombok是否支持Java 9并且它是否仍然使用非公共API:s?

4 个答案:

答案 0 :(得分:45)

Lombok项目有an issue tracking Java 9 support。截至2018年1月9日和版本1.16.20,Lombok正式支持Java 9.来自the changelog

  
      
  • PLATFORM:在新的IntelliJ,Netbeans和Gradle中更好地支持jdk9。
  •   
  • BREAKING CHANGE:lombok配置密钥lombok.addJavaxGeneratedAnnotation现在默认为false而不是true。随着JDK9的发布,Oracle打破了这一注释,需要进行这一重大改变。
  •   
  • BREAKING CHANGE:现在不推荐使用lombok配置密钥lombok.anyConstructor.suppressConstructorProperties,默认为true,即默认情况下,lombok不再自动生成@ConstructorProperties注释。现在存在新的配置密钥lombok.anyConstructor.addConstructorProperties;如果您想要旧的行为,请将其设置为true。随着JDK9的发布,Oracle或多或少打破了这个注释,需要进行这种突破性的改变。
  •   
  • 开发:现在可以在JDK1.9上编译lombok。
  •   

(目前,它不是模块,所以你需要将它放在类路径上。感谢Tos' answer,它首先提到了这一点。)

答案 1 :(得分:4)

此处跟踪了lombok for Java 9的当前状态:https://github.com/rzwitserloot/lombok/issues/985

截至目前,这个bug仍然是开放的,并且(显然)正在积极地开展工作。有一个边缘释放解决了大部分问题,所以在这一点看起来你需要做的就是等待..

答案 2 :(得分:3)

自2018年1月9日以来,该问题似乎已得到解决:https://github.com/rzwitserloot/lombok/issues/985#issuecomment-356135454

Per Lombok版本1.16.20支持Java 9。

答案 3 :(得分:0)

由于跟踪了Java 9的lombok的状态,here

有关这是为什么的提示,请参见this博客文章,其中解释了一些“技巧” /“黑客”