Overslaan naar hoofdinhoud

webforJ build plugin 26.01

Openen in ChatGPT

De webforJ build plugin voert het bouwproces van webforJ uit als onderdeel van je Maven- of Gradle-bouw. Je voegt het eenmaal toe, en het koppelt zijn doelen aan de fasen die je al uitvoert, zonder dat er een apart frontendproject moet worden gesynchroniseerd. Het stuurt de frontend bundler, compileert de frontend, voert de frontend-tests uit, serveert de ontwikkelingseisen, en voegt een hotswap-tool toe aan de app die het start.

De plugin toevoegen​

Een webforJ-project dat is gemaakt van een archetype heeft al de plugin. Om het aan een bestaand project toe te voegen:

De plugin declareren met <extensions>true</extensions> koppelt zijn doelen aan de bouw zonder dat er uitvoeringsblokken geschreven hoeven te worden:

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

Doelen en taken​

Drie doelen zijn gekoppeld aan de fasen die je al uitvoert, zodat een normale mvn package of ./gradlew build een app produceert met de frontend ingebouwd, en de testfase de frontend-tests naast de Java-tests uitvoert. De watch is degene die je handmatig start tijdens de ontwikkeling:

Maven doelGradle taakDraaitWat het doet
bundlewebforjBundleprepare-package, vóór elke jar en warCompileert de frontend voor de verpakte app
testwebforjTestmet de testfaseVoert de frontend-tests uit
cleanwebforjCleanFrontendmet de schoonmaakfaseVerwijdert de gegenereerde frontend
watchwebforjWatchhandmatig, naast de appBouwt opnieuw bij wijzigingen tijdens de ontwikkeling
push-keyswebforjPushKeyshandmatig, eenmaal per implementatieGenereert het sleutel paar voor pushmeldingen en print de configuratielijnen
bbj-setupAlleen Mavenhandmatig, op de BBj-machineInstalleert BBjShip in de lokale BBj en activeert het implementatie-eindpunt
bbj-packageAlleen Mavenmet de pakketfase, met een <bbj>-blokSchrijft het BBj-implementatiearchief
bbj-deployAlleen Mavenmet de installatiefase, met een <bbj>-blokImplementeert de app naar BBjServices
bbj-undeployAlleen MavenhandmatigVerwijdert de app uit BBjServices

Start de watch als het doel vóór degene die de app uitvoert, mvn compile webforj:watch spring-boot:run bijvoorbeeld. Een archetype-project stelt dit in als het standaarddoel, zodat mvn alleen alles start. Het herlaadgedrag wordt behandeld in Frontend watch.

Sla de frontend-tests samen met de Java-tests over, -DskipTests of -Dmaven.test.skip met Maven en -PskipTests met Gradle.

Opties​

Stel opties in als Maven <configuration> elementen of als Gradle webforj { } extensiewaarden. Elke Maven-optie behalve plugins en hotswap accepteert ook een -D-eigenschap op de opdrachtregel. De twee buildtools weerspiegelen elkaar:

Maven-elementMaven-eigenschapGradleStandaardDoel
bunVersionwebforj.bundler.versionbunVersionbeheerdStel de Bun-versie in voor reproduceerbare builds
bunPathwebforj.bundler.pathbunPathdownloadenGebruik een bestaande Bun-binaire in plaats van te downloaden
cacheDirwebforj.bundler.cacheDircacheDir${user.home}/.webforj/bunWaar beheerde Bun-binaries worden gecached
sourceRootwebforj.bundler.sourceRootsourceRootsrc/main/frontendWaar de frontend entry sources zich bevinden
workDirwebforj.bundler.workDirworkDirtarget/bundleWaar de plugin zijn gegenereerde bouwbestanden schrijft
plugins—plugins—Zet een extensie aan of uit op id, zoals webforj-tailwind
excludePackageswebforj.bundler.excludePackagesexcludePackages—Pakketvoorkeurs om over te slaan tijdens de annotatiescan
eagerwebforj.bundler.eagereagerfalseLaad de hele frontend bij app-start in plaats van per weergave, zie Eager bundle
testArgswebforj.bundler.testArgstestArgs—Extra argumenten die aan de frontend-testloper worden doorgegeven
hotswap—hotswap—Hecht een class update tool aan de app die de build start, zie Hotswap

Bijvoorbeeld, om de Bun-versie vast te zetten en Tailwind in te schakelen:

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>
webforJ-team

Hulp nodig?

Bespreek je project met de engineers van webforJ.

Neem contact met ons op