Bestaande Projecten
Een project dat met de verouderde webforJ install plugin implementeert, wordt overgezet naar BBjShip met één OpenRewrite-run. De run past de pom.xml en de webforj.conf van het project aan. Java-code, stylesheets en bronnen blijven onveranderd.
Migreren met OpenRewrite
Voeg de OpenRewrite Maven-plugin toe aan je pom.xml, met het webforJ 26.03 recept:
<plugin>
<groupId>org.openrewrite.maven</groupId>
<artifactId>rewrite-maven-plugin</artifactId>
<version>6.36.0</version>
<configuration>
<activeRecipes>
<recipe>com.webforj.rewrite.v26.UpgradeWebforj_26_03</recipe>
</activeRecipes>
</configuration>
<dependencies>
<dependency>
<groupId>com.webforj</groupId>
<artifactId>webforj-rewrite</artifactId>
<version>26.03</version>
</dependency>
</dependencies>
</plugin>
Voer de migratie uit en bekijk wat er is veranderd:
mvn rewrite:run
git diff
Het gemigreerde project implementeert met BBjShip. mvn install implementeert de app en mvn start een ontwikkelingsrun. Verwijder de OpenRewrite-plugin daarna uit je pom.xml. Geautomatiseerde upgrades laat zien hoe je de wijzigingen kunt bekijken voordat je de run uitvoert.
Wat de migratie wijzigt
De build plugin
De install plugin wordt de webforJ build plugin met <extensions>true</extensions>, zodat mvn install zonder uitvoering implementeert. De instellingen verplaatsen naar het <bbj> blok:
<plugin>
<groupId>com.webforj</groupId>
<artifactId>webforj-maven-plugin</artifactId>
<version>${webforj.version}</version>
<extensions>true</extensions>
<configuration>
<bbj>
<publishName>inventory</publishName>
<deployment>
<url>http://localhost:8888/webforj-bbjship</url>
</deployment>
</bbj>
</configuration>
</plugin>
| Install plugin | BBjShip |
|---|---|
<deployurl> | <bbj><deployment><url>, met het pad /webforj-bbjship |
<publishname> | <bbj><publishName> |
<username>, <password>, <token> | <bbj><admin> |
<classname> | webforj.entry in webforj.conf |
<debug> | webforj.debug in webforj.conf |
Implementeren somt elke instelling van het <bbj> blok op.
De webforJ engine
BBjServices biedt de webforJ engine, dus je app mag niet zijn eigen versie meedragen. De webforj afhankelijkheid sluit al webforj-engine uit. De migratie verklaart het opnieuw in de provided scope zodat je IDE er nog steeds tegen kan compileren:
<dependency>
<groupId>com.webforj</groupId>
<artifactId>webforj-engine</artifactId>
<version>${webforj.version}</version>
<scope>provided</scope>
</dependency>
Het configuratiebestand
De entry klasse en de debug-vlag verplaatsen van de install plugin naar webforj.conf, naast de instellingen waarmee een BBjShip-app draait:
webforj.entry = "com.example.Application"
webforj.debug = true
webforj.assetsSource = packaged
webforj.devtools.livereload.enabled = true
webforj.devtools.craftforj.enabled = true
webforj.assetsSource = packaged levert de ws:// statische bestanden en de icons:// iconen van de app. Zonder deze instelling kan een app die icons:// gebruikt niet opstarten in BBjServices. Sleutels die het bestand al instelt blijven onveranderd.
Ontwikkelingsruns
De migratie voegt HotswapAgent toe aan de configuratie van de build plugin:
<hotswap>
<hotswapAgent/>
</hotswap>
Het stelt ook compile webforj:watch in als het standaard doel van de build, zodat mvn de app draait in de BBjServices van je eigen machine:
<defaultGoal>compile webforj:watch</defaultGoal>
Zie BBjServices in Herimplementatie en Live Reload.
Zonder de install plugin
Een project dat nooit de install plugin heeft gebruikt, krijgt dezelfde configuratie handmatig: de build plugin met een <bbj> blok, de webforj-engine uitsluiting en provided verklaring, en webforj.conf met webforj.assetsSource = packaged. Het project gebruikt jar packaging, en de webforj afhankelijkheid sluit webforj-engine uit:
<dependency>
<groupId>com.webforj</groupId>
<artifactId>webforj</artifactId>
<version>${webforj.version}</version>
<exclusions>
<exclusion>
<groupId>com.webforj</groupId>
<artifactId>webforj-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
Blijf leren
ArtikelAI tools for Java migration: pick by the job, not the brand
ArtikelSpring Boot Live Reload UI: See Java Changes in Your Browser
ArtikelwebforJ Release Cycle: How Often It Ships and How Upgrades Work
ArtikelStarting a New Java Project: The Decisions That Shape the Stack
ArtikelJava framework upgrade with OpenRewrite: a webforJ guide