2016-05-03 13 views
3

Ich verwende die Spring STS in Eclipse, um ein einfaches webbasiertes Spring-Boot-Projekt zu erstellen. Ich kann es gut in Eclipse laufen, aber wenn ich versuche, es als JAR-Datei zu exportieren, die ich erhalte:Spring-Boot-Anwendung exportieren als JAR-Datei in Eclipse

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 main void main in Application.java befindet, mit der @SpringBootApplication Anmerkung.

Ich habe alle Maven Abhängigkeiten hundert Mal überprüft.

Was mache ich falsch?

+0

Hat 'mvn läuft Versandstück eine funktionierende jar geben? – chrylis

+0

@chrylis Ich kann nicht herausfinden, wie man 'mvn' Befehle ausführt, bash findet es nicht. –

Antwort

7

Wahrscheinlich verwenden Sie den integrierten Eclipse-Exporteur, um Ihr jar zu generieren, das nur die Zieldateien enthält, die tatsächlich in diesem Projekt erzeugt werden. Um ein "fettes" (standalone ausführbares) jar zu haben, müssen Sie das Spring Boot Maven oder Gradle Plugin verwenden, um das jar "neu zu packen".

Zuerst sicherstellen, dass you have the repackage goal included in your build setup, dann das Maven package Ziel verwenden. Die einfachste Möglichkeit besteht darin, mvn package über die Befehlszeile 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-Operationen in Eclipse auszuführen.

+2

Fantastisch !! Der letzte Teil deiner Antwort hat den Trick für mich gemacht, ich wusste nicht, dass ich die pom.xml mit Maven "laufen lassen" muss. Ich kann dir nicht genug danken. –

+2

@ ViggoLundén Glücklich zu helfen. Ich empfehle, sich mit der Ausführung von Maven vom CLI vertraut zu machen (genau wie Git), weil es der "offizielle" Ansatz von CI-Tools und ähnlichem ist (es bietet den sogenannten "One-Step-Build"), und M2Eclipse hat einen einige subtile Fehler, die sich hauptsächlich auf den Klassenpfad beziehen, die Sie beißen können, wenn Sie Ihre Pre-Push-Tests nicht vom CLI aus durchführen. – chrylis

0

Es handelt sich um einen einzeiligen Befehl auf der Maschine mit dem Fenster 7/10 mit der Eingabeaufforderung für Ihren Projektordner (im Arbeitsbereich Ihres Projekts). Ich mache nicht mit Eclipse IDE POM Maven-Zielen, aber Sie können dort auch mit Maven-Ziel tun. Auf Fenstermaschine bevorzuge ich cmd.exe zum Exportieren und Ausführen.

mvnw clean package 

auf Unix-Kernel

basierend
./mvnw clean package 

Sie haben innerhalb Arbeitsbereich und als zu Stammordner des Projekts zu gehen. Sie werden einen Maven Wrapper mvnw sehen, mit dem Sie nicht Maven installiert haben muss und .mvn Ordner auf der gleichen Ebene bietet die notwendigen Jar für das. Für ein Projekt

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

es zusteller-0.0.1-SNAPSHOT.jar im Ziel Ordner auf dem gleichen Niveau schaffen.

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

können Sie führen eigenständige Anwendung (embedded Tomcat) und Zugriff auf localhost: 8080/Ihr Projekt

Verwandte Themen