Javadoc avec Lombok en Java 25, agrémentée de skills et de Groovy
Onze ans que j’utilise Lombok dans tous mes projets Java. Onze ans de @Builder, @Getter, @EqualsAndHashCode sans jamais écrire une ligne de boilerplate. Onze ans de bonheur - jusqu’au jour où j’ai voulu générer une Javadoc 100% propre sur un projet Java 25 avec un Lombok récent.
Le constat : une Javadoc vide. Des builders fantômes. Des constructeurs introuvables. Un plugin Maven qui se plaint de tout sans rien résoudre.
Le problème est fondamental : Lombok ne génère pas de code source, il modifie le bytecode. Or javadoc lit le code source. Vos @Builder, @UtilityClass et autres annotations disparaissent dans ce gouffre - et avec eux, toute la documentation soigneusement rédigée sur vos champs.
Jusqu’ici, je me contentais d’une Javadoc approximative. Halte à l’approximation.
J’ai cherché. ChatGPT m’a proposé des versions de Lombok incompatibles avec Java 25. GitHub Copilot m’a donné des configurations de plugins qui n’existent pas. Stack Overflow affiche des réponses de l’ère Java 8. J’ai dû faire “à l’ancienne” : réfléchir, tester, corriger, recommencer. Le tout sans Generative AI.
La solution que j’ai construite passe par une phase delombok (génération du code source et non pas du bytecode), une configuration Maven précise pour Java 25, un profil dédié pour ne pas casser les IDE, des scripts Groovy pour injecter la Javadoc manquante sur les classes générées et en bonus, deux skills pour que vous n’ayez pas à refaire ce chemin.
Ce n’est pas simple. Mais ça fonctionne.