Rumah  >  Artikel  >  Java  >  Bagaimanakah saya boleh menyelesaikan \"NoClassDefFoundError\" dalam Maven apabila berjalan dari baris arahan?

Bagaimanakah saya boleh menyelesaikan \"NoClassDefFoundError\" dalam Maven apabila berjalan dari baris arahan?

Susan Sarandon
Susan Sarandonasal
2024-10-27 04:01:02820semak imbas

How can I resolve the

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn