webforJ Build-Plugin 26.01
Das webforJ-Build-Plugin führt die Build-Zeitarbeiten von webforJ als Teil 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 ein separates Frontend-Projekt zum Synchronisieren. Es steuert den Frontend-Bundler, kompilieren das Frontend, führt die Frontend-Tests aus, serviert den Entwicklungswatch und fügt ein Hotswap-Tool zu der Anwendung hinzu, 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 dass Ausführungsblöcke geschrieben werden müssen:
<plugin>
<groupId>com.webforj</groupId>
<artifactId>webforj-maven-plugin</artifactId>
<extensions>true</extensions>
</plugin>
Fügen Sie das Plugin über eine buildscript-Classpath-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 Anwendung mit ihrem Frontend kompiliert, und die Testphase führt die Frontend-Tests zusammen mit den Java-Tests aus. Der Watch ist der, den Sie während der Entwicklung manuell starten:
| Maven-Ziel | Gradle-Aufgabe | Ausgeführt | Was es tut |
|---|---|---|---|
bundle | webforjBundle | prepare-package, vor jeder Jar- und War-Datei | Kompiliert das Frontend für die verpackte Anwendung |
test | webforjTest | mit der Testphase | Führt die Frontend-Tests aus |
clean | webforjCleanFrontend | mit der Clean-Phase | Entfernt das generierte Frontend |
watch | webforjWatch | manuell, neben der Anwendung | Baut bei Änderungen während der Entwicklung neu |
push-keys | webforjPushKeys | manuell, einmal pro Bereitstellung | Generiert das Schlüsselpaar für Push-Benachrichtigungen und druckt die Konfigurationszeilen aus |
bbj-setup | Nur Maven | manuell, auf der BBj-Maschine | Installiert BBjShip im lokalen BBj und aktiviert seinen Bereitstellungspunkt |
bbj-package | Nur Maven | mit der Paketphase, mit einem <bbj>-Block | Schreibt das BBj-Bereitstellungsarchiv |
bbj-deploy | Nur Maven | mit der Installationsphase, mit einem <bbj>-Block | Stellt die Anwendung bereit bei BBjServices |
bbj-undeploy | Nur Maven | manuell | Entfernt die Anwendung von BBjServices |
Starten Sie den Watch als Ziel vor demjenigen, das die Anwendung ausführt, z. B. mvn compile webforj:watch spring-boot:run. Ein Archetyp-Projekt legt dies als das Standardziel fest, sodass mvn allein alles startet. Das Verhalten beim Neuladen wird in Frontend watch 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 auch eine -D-Eigenschaft in der Befehlszeile. Die beiden Build-Tools spiegeln sich gegenseitig wider:
| Maven-Element | Maven-Eigenschaft | Gradle | Standard | Zweck |
|---|---|---|---|---|
bunVersion | webforj.bundler.version | bunVersion | verwaltet | Fixieren Sie die Bun-Version für reproduzierbare Builds |
bunPath | webforj.bundler.path | bunPath | herunterladen | Verwenden Sie eine vorhandene Bun-Binärdatei, anstatt sie herunterzuladen |
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 Frontend-Eingangsquellen liegen |
workDir | webforj.bundler.workDir | workDir | target/bundle | Wo das Plugin seine generierten Build-Dateien schreibt |
plugins | — | plugins | — | Schalten Sie eine Erweiterung durch ID ein oder aus, z. B. 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 Start der Anwendung anstelle von pro Ansicht, siehe Eager bundle |
testArgs | webforj.bundler.testArgs | testArgs | — | Zusätzliche Argumente, die an den Frontend-Testläufer übergeben werden |
hotswap | — | hotswap | — | Fügen Sie ein Klassenaktualisierungstool zu der Anwendung hinzu, die der Build startet, siehe Hotswap |
Zum Beispiel, um 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')
}