Le compilateur Maven ne peut pas résoudre l'importation
J'essaye de créer plusieurs produits éclipse avec maven et tycho. Je suis actuellement coincé sur un problème, où un Bundle A dépend d'une classe du Bundle B.Le Bundle B a une structure de package similaire à:
a.b.c.d.e.f.Class
Quand j'essaye maintenant de construire l'IA, j'obtiens une erreur de compilation qui ressemble un peu à ceci:
import a.b.c.d.e.f.MyClass;
[ERROR] ^^^^^^^^^
[ERROR] The import a.b.c.d.e cannot be resolved
Si vous regardez de plus près, vous voyez que Maven essaie apparemment de résoudre le mauvais paquet, car il déclare seulement qu'il ne peut pas résoudre tant a.b.c.d.e
que la classe qui est censée être importée est en fait a.b.c.d.e.f
.
De plus, aucune classe n'est présente dans a.b.c.d.e
. J'ai essayé à la fois d'inclure en a.b.c.d.e
tant que package exporté dans le manifeste et de le supprimer de cette liste, mais aucun n'a aidé.
Quel pourrait être le problème ici?
Réponses
Après avoir exécuté maven avec une journalisation très détaillée, j'ai vérifié deux fois les arguments, que maven (tycho) passait au compilateur JDT lors de la compilation du Bundle A. J'ai remarqué qu'il ne passait qu'un JAR que j'ai ajouté au classpath du Bundle B.
J'ai alors remarqué que dans le MANIFEST du Bundle B, où j'ai spécifié le Bundle-Classpath
, je n'avais que The JAR sur le classpath. Je pensais auparavant que les classes du bundle lui-même seraient ajoutées par défaut, mais après avoir ajouté ,.
à la Bundle-Classpath
propriété, la construction fonctionnait à nouveau.
Si vous voulez en savoir plus à ce sujet, CE POST m'a orienté dans la bonne direction.