13 votes

Erreur de compilation du projet mixte Java/Scala et Lombok

Je suis en train de compiler un projet mixte Maven Java/Scala qui contient une classe Scala dépendante d'un bean Java avec des annotations lombok. J'ai essayé d'ajouter le fichier jar lombok au classpath de démarrage du compilateur Scala ainsi que l'agent lombok, mais le compilateur n'a toujours pas réussi à trouver les getters générés. Existe-t-il un moyen pour que le compilateur Scala reconnaisse les annotations lombok ? Si ce n'est pas le cas, quel serait un bon contournement ?

Veuillez noter que j'essaie d'éviter d'introduire un autre projet Maven juste pour compiler ce bean en premier car le bean appartient logiquement au même projet. De plus, je ne peux pas réécrire le bean en Scala car il est ensuite utilisé dans un projet GWT.

Merci,

19voto

Daniel C. Sobral Points 159554

Je pense que vous ne pourrez pas l'éviter. L'intégration normale Scala/Java fonctionne comme suit :

  1. Scala va d'abord, puisque Java ne sait rien de Scala.
    1. Scalac analyse les fichiers Java et apprend à propos des éléments visibles.
    2. Scalac lit les fichiers Scala et génère les fichiers de classe.
  2. Java va en dernier lieu, et lit les fichiers Java ainsi que les fichiers de classe générés par Scala.

Le problème évident est que Scala ne connaît rien des annotations de Lombok, donc il ne peut pas comprendre les éléments qui en sont générés.

Si vous n'avez aucune dépendance de Java à Scala, vous pouvez simplement inverser l'ordre : laissez Java passer en premier, et faites en sorte que Scala inclue les fichiers de classe générés par javac dans son classpath.

Autrement, je suppose que vous devrez diviser le processus.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X