Kompilator Maven nie może rozpoznać importu

Dec 07 2020

Staram się budować wiele produktów eclipse za pomocą mavena i Tycho. Obecnie utknąłem w problemie, w którym pakiet A jest zależny od klasy z pakietu B. Pakiet B ma strukturę pakietu podobną do:

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

Kiedy teraz próbuję zbudować sztuczną inteligencję, pojawia się błąd kompilacji, który wygląda mniej więcej tak:

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

Jeśli przyjrzysz się uważnie, zobaczysz, że Maven najwyraźniej próbuje rozwiązać niewłaściwy pakiet, ponieważ stwierdza tylko, że nie może rozwiązać, a.b.c.d.egdy klasa, która ma zostać zaimportowana, znajduje się w rzeczywistości a.b.c.d.e.f.

Ponadto nie ma żadnych klas w a.b.c.d.e. Próbowałem zarówno włączyć a.b.c.d.ejako wyeksportowany pakiet do Manifestu, jak i usunąć go z tej listy, ale żadne z nich nie pomogło.

Jaki może być problem?

Odpowiedzi

1 Radioo Dec 07 2020 at 20:08

Po uruchomieniu mavena z bardzo szczegółowym logowaniem dwukrotnie sprawdziłem argumenty, że maven (tycho) przekazywał do kompilatora JDT kompilując Bundle A. Zauważyłem, że dopiero mijając JAR dodałem do ścieżki klas Bundle B.

Zauważyłem wtedy, że w MANIFESTIE Paczki B, w którym określiłem Bundle-Classpath, miałem tylko JAR na ścieżce klas. Wcześniej myślałem, że klasy samego pakietu zostaną dodane domyślnie, ale po dodaniu ,.do Bundle-Classpathwłaściwości kompilacja znów zadziałała.

Jeśli chcesz przeczytać więcej na ten temat, TEN POST wskazał mi właściwy kierunek.