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?
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.
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