Zum Hauptinhalt springen

webforJ Build-Plugin 26.01

In ChatGPT öffnen

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:

Die Deklaration des Plugins mit <extensions>true</extensions> bindet seine Ziele an den Build, ohne Ausführungsklassen schreiben zu müssen:

pom.xml
<plugin>
<groupId>com.webforj</groupId>
<artifactId>webforj-maven-plugin</artifactId>
<extensions>true</extensions>
</plugin>

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-ZielGradle-AufgabeAusführungenWas es tut
bundlewebforjBundleprepare-package, vor jedem jar und warKompiliert das Frontend für die verpackte App
testwebforjTestmit der TestphaseFührt die Frontend-Tests aus
cleanwebforjCleanFrontendmit der BereinigungsphaseEntfernt das generierte Frontend
watchwebforjWatchmanuell, neben der AppBaut bei Änderungen während der Entwicklung neu
push-keyswebforjPushKeysmanuell, einmal pro BereitstellungGeneriert 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-ElementMaven-EigenschaftGradleStandardZweck
bunVersionwebforj.bundler.versionbunVersionverwaltetLegt die Bun-Version für reproduzierbare Builds fest
bunPathwebforj.bundler.pathbunPathherunterladenVerwenden Sie eine vorhandene Bun-Binärdatei anstelle des Herunterladens
cacheDirwebforj.bundler.cacheDircacheDir${user.home}/.webforj/bunWo verwaltete Bun-Binärdateien zwischengespeichert werden
sourceRootwebforj.bundler.sourceRootsourceRootsrc/main/frontendWo die Quellcodes für den Frontend-Einstieg leben
workDirwebforj.bundler.workDirworkDirtarget/bundleWo das Plugin seine generierten Build-Dateien schreibt
pluginspluginsSchalten Sie eine Erweiterung nach ID ein oder aus, wie webforj-tailwind
excludePackageswebforj.bundler.excludePackagesexcludePackagesPaketpräfixe, die während des Annotation-Scans übersprungen werden sollen
eagerwebforj.bundler.eagereagerfalseLaden Sie das gesamte Frontend beim App-Start anstelle von pro Ansicht, siehe Eager-Bundel
testArgswebforj.bundler.testArgstestArgsZusätzliche Argumente, die an den Frontend-Test-Runner übergeben werden
hotswaphotswapFügen Sie ein Klassenaktualisierungswerkzeug an die App an, die der Build startet, siehe Hotswap

Um beispielsweise die Bun-Version festzulegen und Tailwind zu aktivieren:

pom.xml
<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>