Spring Boot
In einer Spring Boot-App liefert das webforJ-Build-Plugin die Entwicklungstools für Entwicklungsdurchläufe. Das Projekt erklärt keine Abhängigkeit dafür, und sie sind niemals Teil der verpackten App.
Anforderungen
Die Starter-Abhängigkeit und das Build-Plugin. Ein aus einem Archetyp erstelltes Projekt verfügt über beides.
- Maven
- Gradle
<dependency>
<groupId>com.webforj</groupId>
<artifactId>webforj-spring-boot-starter</artifactId>
</dependency>
<plugin>
<groupId>com.webforj</groupId>
<artifactId>webforj-maven-plugin</artifactId>
<version>${webforj.version}</version>
<extensions>true</extensions>
</plugin>
dependencies {
implementation 'com.webforj:webforj-spring-boot-starter'
}
Live-Reload aktivieren
webforj.devtools.livereload.enabled=true
server.shutdown=immediate
Starten Sie die App wie gewohnt, mvn mit Maven oder ./gradlew bootRun mit Gradle. Java-Änderungen werden nach einer Kompilierung angewendet, Stylesheet- und Bildänderungen erfolgen sofort, und die Quellen in src/main/frontend werden über das Frontend-Watch neu kompiliert. Die verbleibenden Schlüssel sind in den Einstellungen aufgeführt.
Spring DevTools
Spring DevTools ist optional, Live-Reload funktioniert auch ohne. Um das Neustartmodell zu verwenden, fügen Sie seine Abhängigkeit hinzu:
- Maven
- Gradle
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
dependencies {
developmentOnly 'org.springframework.boot:spring-boot-devtools'
}
Mit vorhandenem Spring DevTools startet eine kompilierte Änderung den Spring-Kontext neu, und der Browser wird aktualisiert, wenn der Neustart abgeschlossen ist. Mit einem Hot-Swap-Tool, das ebenfalls konfiguriert ist, werden die Klassenuploads angewendet und der Neustart bleibt deaktiviert.
Produktionsbuilds
mvn package und ./gradlew bootJar erzeugen eine App ohne Entwicklungstools, ohne dass eine Ausschluss-, Profil- oder Eigenschaft erforderlich ist. Die webforj.devtools.livereload.enabled-Eigenschaft hat in einer verpackten App keine Wirkung.