it-swarm.com.de

Spring Boot-Anwendung als JAR-Datei in Eclipse exportieren

Ich verwende den Spring STS in Eclipse, um ein einfaches webbasiertes Spring Boot-Projekt zu erstellen. Ich kann es gut in Eclipse ausführen, aber wenn ich versuche, es als JAR-Datei zu exportieren, bekomme ich:

rg.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.context.ApplicationContextException: Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean.

Mein public static void main befindet sich in Application.Java mit der @SpringBootApplication-Anmerkung. 

Ich habe alle Abhängigkeiten von Maven hundertmal geprüft.

Was mache ich falsch?

6
Viggo Lundén

Wahrscheinlich verwenden Sie den eingebauten Eclipse-Exporter, um Ihre jar zu generieren, die nur die Zieldateien enthält, die tatsächlich in diesem Projekt erstellt wurden. Um ein "fettes" (eigenständiges, ausführbares) Jar zu haben, müssen Sie das Spring Boot Maven- oder Gradle-Plugin verwenden, um das Jar "neu zu packen".

Stellen Sie zunächst sicher, dass Sie haben das repackage-Ziel in Ihrem Build-Setup enthalten , und verwenden Sie dann das Maven-package-Ziel. Am einfachsten ist es, mvn package von der Befehlszeile aus auszuführen (möglicherweise müssen Sie das Maven-CLI-Paket für Ihr Betriebssystem installieren). Sie können auch mit der rechten Maustaste auf das POM in Eclipse und "Ausführen als" klicken, um bestimmte Maven-Vorgänge in Eclipse auszuführen.

15
chrylis

Es ist ein einzeiliger Befehl auf einem Windows 7/10-Computer mit dem Befehl Eingabeaufforderung in Ihrem Projektordner (In Ihrem Projektarbeitsbereich). Ich mache nicht mit Eclipse IDE POM-Maven-Zielen, aber man kann dort auch mit Maven-Toren arbeiten. AUF Fenstermaschine bevorzuge ich cmd.exe zum Exportieren und Ausführen.

mvnw clean package

auf Unix-Kernel basiert

./mvnw clean package

Sie müssen sich innerhalb des Arbeitsbereichs befinden und dann zum Stammordner des Projekts. Sie werden einen Maven-Wrapper mvnw sehen, mit dem Sie Maven nicht installiert haben müssen und der .mvn-Ordner auf derselben Ebene die erforderliche JAR für dieses Projekt bereitstellt .. Für ein Projekt

D:\workspace\Zuteller Workspace\zusteller>mvnw clean package

es wird zusteller-0.0.1-SNAPSHOT.jar im Ordner target auf derselben Ebene erstellt.

D:\workspace\Zuteller Workspace\zusteller>Java -jar target\zusteller-0.0.1-SNAPSHOT.jar

Sie können eine eigenständige Anwendung (eingebettetes Tomcat) ausführen und auf localhost: 8080/Ihr Projekt zugreifen

1
vimal krishna