Rumah >Java >javaTutorial >Bagaimanakah saya boleh menyelesaikan \'NoClassDefFoundError\' dalam Maven apabila berjalan dari baris arahan?
Resolusi Ketergantungan melalui Shade Plugin untuk NoClassDefFoundError
Dalam pengalaman pertama dengan Maven, ketidakkonsistenan antara Eclipse dan penggunaan baris arahan boleh timbul disebabkan oleh pengurusan pergantungan. Walaupun penciptaan projek Maven dan penambahan kebergantungan berjaya dalam Eclipse, melaksanakan projek melalui baris arahan boleh mengakibatkan NoClassDefFoundError.
Secara lalai, Maven membungkus kebergantungan secara berasingan dan tidak memasukkannya ke dalam fail JAR yang disusun. Peninggalan ini menyebabkan Java VM gagal apabila cuba mencari kelas perpustakaan semasa pelaksanaan.
Daripada menambah perpustakaan secara manual pada laluan kelas, maven-shade-plugin menyediakan penyelesaian yang lebih cekap. Ia mencipta "uber-JAR" yang menggabungkan kelas aplikasi dengan kod perpustakaan yang diperlukan.
Untuk melaksanakan ini, tambah konfigurasi pemalam berikut pada POM anda:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.5.2</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> </execution> </executions> </plugin>
Selepas menambah konfigurasi ini, jalankan semula arahan berikut:
$ mvn package $ java -cp target/bil138_4-0.0.1-SNAPSHOT.jar tr.edu.hacettepe.cs.b21127113.bil138_4.App
Untuk pilihan konfigurasi lanjutan, seperti menentukan JAR yang disertakan atau fail JAR boleh laku, rujuk bahagian "Contoh" di tapak web maven-shade-plugin.
Atas ialah kandungan terperinci Bagaimanakah saya boleh menyelesaikan \'NoClassDefFoundError\' dalam Maven apabila berjalan dari baris arahan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!