Kompilator Maven nie może rozpoznać importu
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.e
gdy 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.e
jako wyeksportowany pakiet do Manifestu, jak i usunąć go z tej listy, ale żadne z nich nie pomogło.
Jaki może być problem?
Odpowiedzi
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-Classpath
wł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.