webforJ Build-Plugin 26.01
Das webforJ Build-Plugin führt die Build-Arbeiten von webforJ im Rahmen Ihres Maven- oder Gradle-Builds aus. Sie fügen es einmal hinzu, und es bindet seine Ziele an die Phasen, die Sie bereits ausführen, ohne separate Frontend-Projekte synchron halten zu müssen. Es steuert den Frontend-Bundler, kompiliert das Frontend, führt die Frontend-Tests durch, serviert die Entwicklungsüberwachung und bindet ein Hotswap-Tool an die App, die es startet.
Hinzufügen des Plugins
Ein webforJ-Projekt, das aus einem Archetyp erstellt wurde, hat das Plugin bereits. Um es zu einem bestehenden Projekt hinzuzufügen:
- Maven
- Gradle
Die Deklaration des Plugins mit <extensions>true</extensions> bindet seine Ziele an den Build, ohne Ausführungsklassen schreiben zu müssen:
<plugin>
<groupId>com.webforj</groupId>
<artifactId>webforj-maven-plugin</artifactId>
<extensions>true</extensions>
</plugin>
Fügen Sie das Plugin über eine buildscript-Klassendatenbank-Abhängigkeit hinzu und wenden Sie es an:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath "com.webforj:webforj-gradle-plugin:${webforjVersion}"
}
}
apply plugin: 'com.webforj'
Ziele und Aufgaben
Drei Ziele sind an Phasen gebunden, die Sie bereits ausführen, sodass ein normales mvn package oder ./gradlew build eine App mit dem integrierten Frontend produziert und die Testphase die Frontend-Tests zusammen mit den Java-Tests ausführt. Die Überwachung ist die, die Sie während der Entwicklung manuell starten:
| Maven-Ziel | Gradle-Aufgabe | Ausführungen | Was es tut |
|---|---|---|---|
bundle | webforjBundle | prepare-package, vor jedem jar und war | Kompiliert das Frontend für die verpackte App |
test | webforjTest | mit der Testphase | Führt die Frontend-Tests aus |
clean | webforjCleanFrontend | mit der Bereinigungsphase | Entfernt das generierte Frontend |
watch | webforjWatch | manuell, neben der App | Baut bei Änderungen während der Entwicklung neu |
push-keys | webforjPushKeys | manuell, einmal pro Bereitstellung | Generiert das Schlüsselpaar für Push-Benachrichtigungen und gibt die Konfigurationszeilen aus |
Starten Sie die Überwachung als Ziel vor dem, das die App ausführt, z.B. mvn compile webforj:watch spring-boot:run. Ein Archetyp-Projekt setzt dies als Standardziel, sodass mvn allein alles startet. Das Verhalten beim Neuladen wird in Frontend-Überwachung behandelt.
Überspringen Sie die Frontend-Tests zusammen mit den Java-Tests, -DskipTests oder -Dmaven.test.skip mit Maven und -PskipTests mit Gradle.
Optionen
Setzen Sie Optionen als Maven <configuration>-Elemente oder als Gradle webforj { }-Erweiterungswerte. Jede Maven-Option, außer plugins und hotswap, akzeptiert ebenfalls eine -D-Eigenschaft in der Befehlszeile. Die beiden Build-Tools spiegeln einander wider:
| Maven-Element | Maven-Eigenschaft | Gradle | Standard | Zweck |
|---|---|---|---|---|
bunVersion | webforj.bundler.version | bunVersion | verwaltet | Legt die Bun-Version für reproduzierbare Builds fest |
bunPath | webforj.bundler.path | bunPath | herunterladen | Verwenden Sie eine vorhandene Bun-Binärdatei anstelle des Herunterladens |
cacheDir | webforj.bundler.cacheDir | cacheDir | ${user.home}/.webforj/bun | Wo verwaltete Bun-Binärdateien zwischengespeichert werden |
sourceRoot | webforj.bundler.sourceRoot | sourceRoot | src/main/frontend | Wo die Quellcodes für den Frontend-Einstieg leben |
workDir | webforj.bundler.workDir | workDir | target/bundle | Wo das Plugin seine generierten Build-Dateien schreibt |
plugins | — | plugins | — | Schalten Sie eine Erweiterung nach ID ein oder aus, wie webforj-tailwind |
excludePackages | webforj.bundler.excludePackages | excludePackages | — | Paketpräfixe, die während des Annotation-Scans übersprungen werden sollen |
eager | webforj.bundler.eager | eager | false | Laden Sie das gesamte Frontend beim App-Start anstelle von pro Ansicht, siehe Eager-Bundel |
testArgs | webforj.bundler.testArgs | testArgs | — | Zusätzliche Argumente, die an den Frontend-Test-Runner übergeben werden |
hotswap | — | hotswap | — | Fügen Sie ein Klassenaktualisierungswerkzeug an die App an, die der Build startet, siehe Hotswap |
Um beispielsweise die Bun-Version festzulegen und Tailwind zu aktivieren:
- Maven
- Gradle
<plugin>
<groupId>com.webforj</groupId>
<artifactId>webforj-maven-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<bunVersion>1.3.0</bunVersion>
<plugins>
<webforj-tailwind>true</webforj-tailwind>
</plugins>
</configuration>
</plugin>
webforj {
bunVersion = '1.3.0'
plugins.put('webforj-tailwind', 'true')
}