Kompiler Maven tidak dapat menyelesaikan impor

Dec 07 2020

Saya mencoba membuat beberapa produk gerhana dengan maven dan tycho. Saat ini saya terjebak pada masalah, di mana Bundle A bergantung pada kelas dari Bundle B.Bundle B memiliki struktur paket yang mirip dengan:

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

Ketika saya sekarang mencoba membangun AI, dapatkan kesalahan kompilasi yang terlihat seperti ini:

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

Jika Anda melihat lebih dekat, Anda melihat bahwa Maven tampaknya mencoba untuk menyelesaikan paket yang salah, karena hanya menyatakan itu tidak dapat menyelesaikan a.b.c.d.esementara kelas yang dimaksudkan untuk diimpor sebenarnya masuk a.b.c.d.e.f.

Selain itu, tidak ada kelas yang hadir di a.b.c.d.e. Saya telah mencoba keduanya termasuk a.b.c.d.esebagai paket yang diekspor dalam Manifest, dan menghapusnya dari daftar itu, tetapi tidak ada yang membantu.

Apa masalahnya di sini?

Jawaban

1 Radioo Dec 07 2020 at 20:08

Setelah menjalankan maven dengan logging yang sangat mendetail, saya memeriksa ulang argumennya, bahwa maven (tycho) diteruskan ke kompiler JDT saat menyusun Bundle A. Saya perhatikan, bahwa ia hanya meneruskan JAR yang saya tambahkan ke classpath Bundle B.

Saya kemudian memperhatikan, bahwa di MANIFEST dari Bundle B, di mana saya menentukan Bundle-Classpath, saya hanya memiliki The JAR di jalur kelas. Saya sebelumnya mengira kelas bundel itu sendiri akan ditambahkan secara default, tetapi setelah menambahkan ,.ke Bundle-Classpathproperti, build berfungsi lagi.

Jika Anda ingin membaca lebih lanjut tentang itu, POSTINGAN INI mengarahkan saya ke arah yang benar.