¿El Proyecto Lombok soporta Java 9?


He usado Lombok en mi proyecto, pero mi colega no está de acuerdo en usarlo, y su razón es (de controversia de los documentos de lombok

Ambas piezas del Proyecto Lombok hacen uso de APIs no públicas para lograr su brujería. Esto significa que existe el riesgo de que Project Lombok se rompa con versiones posteriores de IDE o JDK.

Pero es un documento muy antiguo escrito en 2010, tal vez ahora ha resuelto el problema, así que quiero saber si Lombok será compatible con Java 9 y todavía utiliza la API no pública:s?

Author: Thunderforge, 2017-01-07

3 answers

El proyecto Lombok tiene un soporte de seguimiento de problemas de Java 9. A partir del 9 de enero de 2018 y la versión 1.16.20, Lombok es compatible oficialmente con Java 9. De el changelog :

  • PLATAFORMA: Mejor soporte para jdk9 en el nuevo IntelliJ, Netbeans y para Gradle.
  • CAMBIO DE RUPTURA: la clave de configuración de lombok lombok.addJavaxGeneratedAnnotation ahora por defecto es false en lugar de true. Oracle rompió esta anotación con el lanzamiento de JDK9, necesitando este cambio radical.
  • BREAKING CHANGE: lombok config key lombok.anyConstructor.suppressConstructorProperties ahora está obsoleta y por defecto es true, es decir, por defecto lombok ya no genera automáticamente @ConstructorProperties anotaciones. Ahora existe una nueva clave de configuración lombok.anyConstructor.addConstructorProperties; póngala en true si desea el comportamiento anterior. Oracle más o menos rompió esta anotación con el lanzamiento de JDK9, necesitando este cambio radical.
  • DESARROLLO: Ahora es posible compilar lombok en JDK1.9.

(Por el momento, no es un módulo, sin embargo, por lo que necesidad de colocarlo en el camino de la clase. Gracias Respuesta de Tos , que primero mencionó esto.)

 44
Author: Nicolai,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-24 14:39:16

El estado actual de lombok para Java 9 se rastrea aquí: https://github.com/rzwitserloot/lombok/issues/985

A partir de ahora, este error todavía está abierto y (aparentemente) se está trabajando activamente en él. Hay una versión edge por ahí que resuelve la mayoría de los problemas, por lo que en este punto parece que todo lo que necesita hacer es esperar..

 4
Author: Randakar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-27 13:34:53

El problema parece estar resuelto desde el 9 de enero de 2018: https://github.com/rzwitserloot/lombok/issues/985#issuecomment-356135454

Por Lombok versión 1.16.20 Java 9 es compatible.

 3
Author: Tos,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-24 13:26:30