<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <mainClass>com.xxx.XxxApplication</mainClass> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
1.org.springframework.boot:spring-boot-maven-plugin:2.2.1.RELEASE: pembungkusan semula gagal: Tidak dapat mencari kelas utama
2 Tidak dapat mencari simbol kelas utama
Jika anda menggunakan palam pembungkusan SpringBoot-. dalam seperti berikut
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
Jika pemalam pembungkusan ini digunakan, maka kita mesti mempunyai kelas beranotasi dengan @SpringBootApplication, jika tidak, pembungkusan semula gagal: Tidak dapat mencari kelas utama akan dilaporkan apabila pembungkusan .
Jika pembungkusan projek kami hanyalah kit alat biasa, maka tidak perlu menambah sebarang pemalam pembungkusan Maven menggunakan kaedah lalai untuk membungkusnya untuk kami tanpa konfigurasi (anda boleh belajar tentang konfigurasi kaedah lalai maven dalam talian Semak, terdapat banyak dalam talian).
Jika projek kami dibina dalam mod pembinaan berbilang peringkat (berbilang modul), ia hanyalah modul biasa semasa pembungkusan, tetapi pembungkusan semula gagal: Tidak dapat mencari ralat kelas utama ialah masih dilaporkan, ini Kemudian kami menyemak sama ada projek induk modul telah menambah pemalam pembungkusan SpringBoot, kerana pemalam pembungkusan juga akan diwarisi. Oleh itu, adalah disyorkan untuk tidak menambah pemalam pembungkusan SpringBoot secara langsung pada projek induk untuk kemudahan Sebaliknya, Modul perlu dibungkus sebagai projek SpringBoot dan kemudian pemalam pembungkusan SpringBoot ditambahkan.
Mengenai kaedah pembungkusan lalai maven (seperti yang ditunjukkan di bawah), pakej dibungkus dalam mod jar, jadi tidak perlu mengkonfigurasi pom.xml, melainkan kami hanya membungkusnya sebagai pom, kita boleh mengkonfigurasi< ;pembungkusan>pom, jika tidak, tidak perlu mengkonfigurasinya. Sudah tentu, peringkat teratas multi-modul mestilah kaedah pembungkusan pom.
Sesuatu projek mempunyai berbilang kelas utama, yang menyebabkan Maven tidak tahu yang mana satu untuk digunakan sebagai pintu masuk utama semasa pembungkusan set
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <mainClass>com.demo.springboot.DemoSbApplication</mainClass> </configuration> </plugin> </plugins> </build>
Sebab ini biasanya apabila kami membungkus projek, kami membungkus projek ke dalam pakej balang dan merujuk modul lain.
Modul lain tidak dibungkus menggunakan kaedah balang Untuk springboot, <packaging>pom</packaging>
ditetapkan dalam kes ini, kelas tidak boleh ditemui, jadi kita hanya perlu menetapkan kaedah pembungkusan modul itu kepada <packaging>jar</packaging>
. Nota: Ini mungkin menyebabkan Masalah kelas utama tidak dapat ditemui.
Atas ialah kandungan terperinci Cara menggunakan pakej maven untuk menentukan mainClass dalam Springboot. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!