web-dev-qa-db-fra.com

Project Lombok prend-il en charge Java 9?

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 ?

35
zhuguowei

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ésormais false 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 valeur true, c'est-à-dire que, par défaut, lombok ne génère plus automatiquement @ConstructorProperties annotations. Nouvelle clé de configuration lombok.anyConstructor.addConstructorProperties existe maintenant; définissez-le sur true 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.)

45
Nicolai

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.

4
Randakar

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.

3
Tos

Depuis l'état de lombok pour Java 9 est suivi ici .

Pour des conseils sur la raison de ce problème, voir this billet de blog qui explique certaines des "astuces"/"hacks"

1
Ashish Khandelwal