Spring Boot Devtools von Beispiel
Entsprechend der Spring Boot Devtools docs, devtools laufen nicht im "Produktions-Modus"; das ist, wenn Sie ausführen, Spring-Boot-Anwendung mit java -jar ..,
dann wird es nicht verwenden devtools " built-in JVM-Magie. Jedoch, die Spring-Boot-starter-docs zeigen Ihnen nur der eine Weg, laufen, Spring-Boot-Anwendung...via java -jar...
.
Also erstmal Frage ich mich: Wie führe ich mein Spring-Boot-Anwendung in nicht-Produktions-Modus? Ich weiß, Sie können führen Sie Ihre app mit Spring Boot CLI (z.B. spring run
), aber ist das die einzige Möglichkeit?
Außerdem die gleichen devtools docs erwähnen Sie explizit entfernen Sie die devtools Glas aus Ihrer Produktion mit binären durch einige excludeDevtools
option, aber Sie erklären nie, wo/wie dies zu nutzen. Beispiele/Ideen hier?
Du musst angemeldet sein, um einen Kommentar abzugeben.
1) Ein Beispiel für das ausführen einer Spring-Boot-Anwendung in nicht-Produktions-Modus (also nicht aus dem GLAS) ist eine IDE (insbesondere für Eclipse oder IntelliJ), wo Sie können, starten Sie die Anwendung aus der main-Methode, oder mit dem Spring-Boot-launch-support. Dies ist die praktische Anwendung der Dev-Tools, wie es erlaubt, kontinuierlich zu beobachten, die änderungen in Ihrer Anwendung ohne Neustart.
2)
excludeDevTools
ist eine option des Spring-Boot-Maven-Plugin http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/maven-plugin/repackage-mojo.html oder das Gradle-plugin - siehe http://docs.spring.io/spring-boot/docs/current/reference/html/build-tool-plugins-gradle-plugin.html#build-tool-plugins-gradle-repackage-configuration.Also in deinem Fall wäre es
bootRepackage {
mainClass = 'demo.Application'
excludeDevtools = true
}
spring run ...
, etc). Ist es möglich, verwenden Sie diesen CLI ausführen Spring-Boot-app w/ devtools (für hot-swapping) sowie in debug-Modus? Und *(2)** * * * wenn ich ausschließen dev-tools, können Sie nur bestätigen, dass devtools wird *nur ausgeschlossen aus der gepackten uber-jar? Nochmals vielen Dank!!!spring run
arbeiten könnte, in diesem Fall, da die devtools basiert auf dem code, der ständig neu kompiliert - diespring run
nicht tun (auch im Falle von Intellij, ein Projekt zu machen ist erforderlich, um pick-up-änderungen). Die gute Nachricht ist,, dass Sie verwenden können, Gradle für den Betrieb Ihrer app mit devtools, mit Gradle - hier ist ein Beispiel dzone.com/articles/....Beginnen mit Spring-boot und die devtools die Entwicklung einfacher. Spring boot nutzt eingebettete servlet-container ( tomcat,sog,jetty) mit diesem können Sie haben Produktionsreifen code auch in nicht-Produktions-Umgebung.
Kommen auf Ihre Frage, wie zu laufen, Spring-boot-Anwendung, die in nicht-Produktionsumgebungen, können wir führen Sie die Anwendung direkt aus der Spring tool suite IDE, indem Sie mit der rechten Maustaste -> ausführen als Spring boot, wenn es lokale Umwelt.
Wenn das build-tool maven ist dann von der Eingabeaufforderung aus mvn boot:führen Sie , wenn es ist gradle dann gradle bootRun vom root-Ordner des Projektes Lage in der Eingabeaufforderung. Wenn Sie werden Verpackung Ihrer Bewerbung als uber-jar Java -jar .., auch wenn Ihre Umgebung ist Linux können Sie beginnen als ein Prozess.
Bezüglich ignorieren devtools in der Produktion Umwelt -, Spring-boot-intelligent ignorieren devtools jar, wenn wir angeben, Spring-boot-devtools als optional scope in Abhängigkeiten von Ihren build-Werkzeug(maven, gradle) . In gradle Spring boot-gradle plugin kümmert sich um das ignorieren devtools für die Letzte bereitgestellte jar-oder war
Update ::
Zum Debuggen eines Spring-Boot-Anwendung ausführen, mit Gradle, gesehen bei http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#howto-remote-debug-gradle-run596
Fügen Sie diese zu Ihrem Aufbau.gradle-Datei:
applicationDefaultJvmArgs = [
"-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005" ]
In der IntelliJ Idea IDE-oder STS-setup eine neue Debug-Konfiguration und in den Optionen wählen Sie "Remote". Die Standardeinstellungen sollten in Ordnung sein, aber achten Sie auf die port-Nummer und transport-Typ ("socket"). Spaß haben!
gradle bootRun
führen Sie Ihre app im debug-Modus?