Zum Hauptinhalt springen

Vorhandene Projekte

In ChatGPT öffnen

Ein Projekt, das mit dem veralteten webforJ-Installationsplugin bereitgestellt wird, wechselt mit einem OpenRewrite-Durchgang zu BBjShip. Der Durchgang ändert die pom.xml und die webforj.conf des Projekts. Java-Code, Stylesheets und Ressourcen bleiben unverändert.

Migration mit OpenRewrite​

Fügen Sie das OpenRewrite Maven-Plugin zu Ihrer pom.xml hinzu, mit dem webforJ 26.03-Rezept:

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

Führen Sie die Migration aus und überprüfen Sie, was sich geändert hat:

mvn rewrite:run
git diff

Das migrierte Projekt wird mit BBjShip bereitgestellt. mvn install stellt die App bereit und mvn startet einen Entwicklungsdurchlauf. Entfernen Sie anschließend das OpenRewrite-Plugin aus Ihrer pom.xml. Automatisierte Upgrades zeigt, wie Sie die Änderungen vor dem Durchlauf anzeigen können.

Was die Migration ändert​

Das Build-Plugin​

Das Installationsplugin wird zum webforJ-Build-Plugin mit <extensions>true</extensions>, sodass mvn install ohne Ausführung bereitstellt. Seine Einstellungen werden in den <bbj>-Block verschoben:

pom.xml
<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>
InstallationspluginBBjShip
<deployurl><bbj><deployment><url>, mit dem Pfad /webforj-bbjship
<publishname><bbj><publishName>
<username>, <password>, <token><bbj><admin>
<classname>webforj.entry in webforj.conf
<debug>webforj.debug in webforj.conf

Bereitstellung listet jede Einstellung des <bbj>-Blocks auf.

Die webforJ-Engine​

BBjServices bietet die webforJ-Engine, daher muss Ihre App ihre eigene nicht mitbringen. Die webforj-Abhängigkeit schließt bereits webforj-engine aus. Die Migration deklariert es erneut im provided-Scope, damit Ihre IDE weiterhin damit kompiliert:

pom.xml
<dependency>
<groupId>com.webforj</groupId>
<artifactId>webforj-engine</artifactId>
<version>${webforj.version}</version>
<scope>provided</scope>
</dependency>

Die Konfigurationsdatei​

Die Einstiegsklasse und das Debug-Flag werden vom Installationsplugin in webforj.conf verschoben, neben die Einstellungen, mit denen eine BBjShip-App ausgeführt wird:

webforj.conf
webforj.entry = "com.example.Application"
webforj.debug = true
webforj.assetsSource = packaged
webforj.devtools.livereload.enabled = true
webforj.devtools.craftforj.enabled = true

webforj.assetsSource = packaged stellt die ws://-statischen Dateien und die icons://-Icons aus der App bereit. Ohne dies kann eine App, die icons:// verwendet, in BBjServices nicht gestartet werden. Die Schlüssel, die die Datei bereits festlegt, bleiben unverändert.

Entwicklungsdurchläufe​

Die Migration fügt HotswapAgent zur Konfiguration des Build-Plugins hinzu:

pom.xml
<hotswap>
<hotswapAgent/>
</hotswap>

Es wird auch compile webforj:watch als das Standardziel des Builds festgelegt, sodass mvn die App in den BBjServices Ihres eigenen Rechners ausführt:

pom.xml
<defaultGoal>compile webforj:watch</defaultGoal>

Siehe BBjServices in Neu-Bereitstellung und Live-Reload.

Ohne das Installationsplugin​

Ein Projekt, das das Installationsplugin nie verwendet hat, erhält dieselbe Konfiguration manuell: das Build-Plugin mit einem <bbj>-Block, die webforj-engine Ausschluss und provided-Deklaration sowie webforj.conf mit webforj.assetsSource = packaged. Das Projekt verwendet die jar-Verpackung, und die webforj-Abhängigkeit schließt webforj-engine aus:

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

Weiterlernen

webforJ-Team

Brauchst du Hilfe?

Sprechen Sie mit den Entwicklern von webforJ über Ihr Projekt.

Gespräch vereinbaren

Wir sprechen EN · DE · FR · ES