Saya telah berhasil dibangun my Spring MVC project dengan mvn clean paket
dengan mengikuti tutorial ini.
Sekarang saya mencoba untuk menjalankan pelayanan dengan:
mvn clean package && java -jar target/gs-serving-web-content-0.1.0.jar
Tapi saya mendapatkan error ini:
Gagal untuk memuat Utama-Kelas mewujudkan atribut dari target/gs-serving-web-content-0.1.0.jar
Aku kehilangan sesuatu?
Jika anda bekerja dengan musim Semi Boot ini akan memecahkan masalah anda:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.2.5.RELEASE</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
Anda harus menetapkan di pom.xml - Ini akan membuat anda executable jar dengan semua dependensi (ganti your.main.class
):
<!-- setup jar manifest to executable with dependencies -->
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>your.main.class</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
Untuk musim semi boot, I've menciptakan MANIFEST.MF file dalam META-INF folder.
saya STS IDE, saya menempatkan META-INFO folder di dalam src/main/resources folder seperti:
isi MANIFEST.MF file:
Manifest-Version: 1.0
Implementation-Title: bankim
Implementation-Version: 1.5.6.RELEASE
Archiver-Version: Plexus Archiver
Built-By: Yourname
Implementation-Vendor-Id: com.bankim
Spring-Boot-Version: 1.5.6.RELEASE
Implementation-Vendor: Pivotal Software, Inc.
Main-Class: org.springframework.boot.loader.JarLauncher
Start-Class: com.bankim.BankimApplication
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
Created-By: Apache Maven 3.3.9
Build-Jdk: 1.8.0_131
Implementation-URL: http://projects.spring.io/spring-boot/bankim/
****di atas terwujud itu dibuat untuk saya dengan menggunakan "semi boot-maven-plugin" yang disebutkan di atas oleh "Mradul Pandey" (menjawab Sep 2 '15 pada 4:50)
Semoga ini bisa membantu
memeriksa urutan
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
itu harus di atas
dockerfile-maven-plugin lain repackage akan terjadi
ini memecahkan masalah saya tidak ada atribut utama dalam manifest.
Aku punya semi-boot-maven-plugin
tapi aku masih mendapatkan kesalahan mengenai kelas utama.
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
Akhirnya saya harus menggunakan maven-jar-plugin
dan tambahkan mainClass
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<mainClass>com.org.proj.App</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
Dan itu baik untuk pergi!
Gunakan semi-boot-maven-plugin
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
dan pastikan anda mengatur properti mulai kelas
di pom.xml
<properties>
<!-- The main class to start by executing "java -jar" -->
<start-class>org.example.DemoApplication</start-class>
</properties>
Atau, kelas utama dapat didefinisikan sebagai mainClass elemen semi-boot-maven-plugin di plugin bagian dari anda pom.xml:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<classifier>spring-boot</classifier>
<mainClass>${start-class}</mainClass>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>