Menyelesaikan NoClassDefFoundError dalam Maven Dependencies
Maven ialah alat automasi binaan popular yang boleh memuat turun dan mengurus kebergantungan secara automatik untuk projek Java. Walau bagaimanapun, kadangkala anda mungkin menghadapi NoClassDefFoundError semasa menjalankan fail JAR binaan Maven anda pada baris arahan.
Ralat ini biasanya berlaku kerana Maven tidak menggabungkan kebergantungan ke dalam JAR yang dibina secara lalai. Tanpa kebergantungan pada classpath, Java Virtual Machine (JVM) tidak dapat mencari fail kelas perpustakaan semasa melaksanakan kod anda.
Untuk menyelesaikan isu ini, anda boleh menentukan perpustakaan secara manual pada classpath menggunakan - parameter cp. Walau bagaimanapun, pendekatan ini boleh membosankan.
Penyelesaian yang lebih cekap ialah dengan menggunakan maven-shade-plugin untuk menaungi kod perpustakaan ke dalam fail JAR output anda. Pemalam ini secara automatik mencipta "uber-JAR" yang mengandungi kedua-dua kelas anda dan kelas perpustakaan.
Untuk menambah maven-shade-plugin pada fail POM anda, ikut langkah berikut:
<code class="xml"><dependency> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.5.2</version> </dependency></code>
<code class="xml"><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></code>
<code class="bash">mvn package java -cp target/jar-filename.jar your.main.class</code>
Dengan melorek kebergantungan, anda mencipta JAR boleh laku yang merangkumi semua yang diperlukan perpustakaan. Ini menyelesaikan NoClassDefFoundError dan membolehkan anda menjalankan aplikasi anda secara bebas.
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan \'NoClassDefFoundError\' dalam kebergantungan Maven apabila menjalankan fail JAR?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!