Der Maven-Compiler kann den Import nicht auflösen

Dec 07 2020

Ich versuche, mehrere Eclipse-Produkte mit Maven und Tycho zu erstellen. Ich bin derzeit mit einem Problem beschäftigt, bei dem ein Bundle A von einer Klasse aus Bundle B abhängig ist. Bundle B hat eine Paketstruktur ähnlich der folgenden:

a.b.c.d.e.f.Class

Wenn ich jetzt versuche, AI zu erstellen, erhalte ich einen Kompilierungsfehler, der ungefähr so ​​aussieht:

 import a.b.c.d.e.f.MyClass;
[ERROR] ^^^^^^^^^
[ERROR] The import a.b.c.d.e cannot be resolved

Wenn Sie genau hinschauen, sehen Sie, dass Maven anscheinend versucht, das falsche Paket aufzulösen, da es nur angibt, dass es nicht aufgelöst werden kann, a.b.c.d.ewährend sich die Klasse, die importiert werden soll, tatsächlich in befindet a.b.c.d.e.f.

Außerdem sind in keine Klassen vorhanden a.b.c.d.e. Ich habe versucht, beides a.b.c.d.eals exportiertes Paket in das Manifest aufzunehmen und es aus dieser Liste zu entfernen, aber keines hat geholfen.

Was könnte hier das Problem sein?

Antworten

1 Radioo Dec 07 2020 at 20:08

Nachdem ich maven mit sehr detaillierter Protokollierung ausgeführt hatte, überprüfte ich die Argumente, dass maven (tycho) beim Kompilieren von Bundle A an den JDT-Compiler übergeben wurde. Ich bemerkte, dass nur eine JAR übergeben wurde, die ich dem Klassenpfad von Bundle B hinzugefügt hatte.

Dann bemerkte ich, dass ich im MANIFEST von Bundle B, in dem ich das spezifizierte Bundle-Classpath, nur The JAR auf dem Klassenpfad hatte. Ich dachte vorher, dass die Klassen des Bundles selbst standardmäßig hinzugefügt werden würden, aber nach dem Hinzufügen ,.zur Bundle-ClasspathEigenschaft funktionierte der Build wieder.

Wenn Sie mehr darüber lesen möchten, hat DIESER POST mich in die richtige Richtung gelenkt .