Overslaan naar hoofdinhoud

webforJ build plugin 26.01

Openen in ChatGPT

De webforJ build plugin voert het bouwtijdwerk van webforJ uit als onderdeel van je Maven- of Gradle-build. Je voegt het eenmaal toe en het koppelt zijn doelen aan de fasen die je al uitvoert, zonder een apart frontendproject dat je in sync moet houden. Het stuurt de frontend bundler, compileert de frontend, voert de frontend-tests uit en serveert de ontwikkelingswatch.

Toevoegen van de plugin

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

De plugin deklareren met <extensions>true</extensions> koppelt zijn doelen aan de build zonder uitvoeringsblokken te hoeven schrijven:

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

Doelen

De plugin koppelt vier doelen, elk aan een fase die je al uitvoert, zodat een normale mvn package of gradle build een app produceert met de frontend die is gecompileerd, en mvn test voert de frontend-tests uit naast de Java-tests.

Maven doelGradle taakFaseWat het doet
bundlewebforjBundleprepare-packageCompiles de frontend voor productie
testwebforjTesttestVoert de frontend-tests uit
cleanwebforjCleanFrontendcleanVerwijdert de gegenereerde frontend
watchwebforjWatchhandmatig uitgevoerdHerbouwen bij wijziging tijdens ontwikkeling

Het doel watch is degene die je handmatig uitvoert tijdens de ontwikkeling, naast de app. Het herlaadgebruik is behandeld in Frontend watch.

Opties

Stel opties in als Maven <configuration> (of -D eigenschappen op de opdrachtregel), en als Gradle webforj { } extensiewaarden. De twee buildtools spiegelen elkaar.

OptieMaven eigenschapGradleStandaardDoel
Bun versiewebforj.bundler.versionbunVersionbeheerdPin de Bun-versie voor reproduceerbare builds
Bun-binairewebforj.bundler.pathbunPathdownloadenGebruik een bestaande Bun-binaire in plaats van te downloaden
Cache-directorywebforj.bundler.cacheDircacheDir${user.home}/.webforj/bunWaar beheerde Bun-binaries worden gecached
Source rootwebforj.bundler.sourceRootsourceRootsrc/main/frontendWaar de frontend ingrondbronnen zich bevinden
Werkdirectorywebforj.bundler.workDirworkDirtarget/bundleWaar de plugin zijn gegenereerde buildbestanden schrijft
ExtensiespluginspluginsZet een extensie aan of uit met id, zoals webforj-tailwind
Uitsluiten pakkettenwebforj.bundler.excludePackagesexcludePackagesPakketprefixen om over te slaan tijdens de annotatiescan
Eagerwebforj.bundler.eagereagerfalseLaad de hele frontend bij de app-start in plaats van per weergave, zie Eager bundle
Testargumentenwebforj.bundler.testArgstestArgsExtra argumenten die aan de frontend-testrunner worden doorgegeven
Sla tests overskipTests, maven.test.skipfalseSla de frontend-tests over

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

pom.xml
<plugin>
<groupId>com.webforj</groupId>
<artifactId>webforj-maven-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<version>1.3.0</version>
<plugins>
<webforj-tailwind>true</webforj-tailwind>
</plugins>
</configuration>
</plugin>