J'ai utilisé Lombok dans mon projet, mais mon collègue n'accepte pas de l'utiliser, et sa raison est (de controverse sur les documents lombok )
Ces deux éléments du projet Lombok utilisent des API non publiques pour accomplir leur sorcellerie. Cela signifie qu'il existe un risque que le projet Lombok soit interrompu avec les versions ultérieures IDE ou JDK).
Mais c'est un très vieux document écrit en 2010, peut-être maintenant qu'il a résolu le problème, donc je veux savoir si Lombok prendra en charge Java 9 et utilise-t-il toujours l'API non publique: s ?
Le projet Lombok a n problème de suivi Java 9 support . Depuis le 9 janvier 2018 et la version 1.16.20, Lombok prend officiellement en charge Java = 9. De le changelog :
- PLATEFORME: Meilleur support pour jdk9 dans les nouveaux IntelliJ, Netbeans et Gradle.
- BREAKING CHANGE: clé de configuration lombok
lombok.addJavaxGeneratedAnnotation
par défaut est désormaisfalse
au lieu de true. Oracle a rompu cette annotation avec la sortie de JDK9, nécessitant ce changement de rupture.- BREAKING CHANGE: clé de configuration lombok
lombok.anyConstructor.suppressConstructorProperties
est désormais obsolète et prend par défaut la valeurtrue
, c'est-à-dire que, par défaut, lombok ne génère plus automatiquement@ConstructorProperties
annotations. Nouvelle clé de configurationlombok.anyConstructor.addConstructorProperties
existe maintenant; définissez-le surtrue
si vous voulez l'ancien comportement. Oracle a plus ou moins rompu cette annotation avec la sortie de JDK9, nécessitant ce changement de rupture.- DÉVELOPPEMENT: La compilation de lombok sur JDK1.9 est désormais possible.
(Pour le moment, ce n'est pas un module, donc vous devez le placer sur le chemin de la classe. Merci réponse de Tos , qui l'a mentionné en premier.)
L'état actuel de lombok pour Java 9 est suivi ici: https://github.com/rzwitserloot/lombok/issues/985
En ce moment, ce bug est toujours ouvert et (apparemment) activement en cours de traitement. Il existe une version Edge qui résout la plupart des problèmes. À ce stade, il semble que tout ce que vous devez faire est d'attendre.
Le problème semble être résolu depuis le 9 janvier 2018: https://github.com/rzwitserloot/lombok/issues/985#issuecomment-356135454
Par Lombok version 1.16.20 Java 9 est pris en charge.