Plugin de construcción de webforJ 26.01
El plugin de construcción de webforJ ejecuta el trabajo de construcción de webforJ como parte de tu construcción de Maven o Gradle. Lo agregas una vez y vincula sus objetivos a las fases que ya ejecutas, sin un proyecto frontend separado que mantener sincronizado. Impulsa el enlazador de frontend, compilando el frontend, ejecutando las pruebas de frontend, sirviendo la vigilancia de desarrollo y adjuntando una herramienta de hotswap a la aplicación que inicia.
Agregar el plugin
Un proyecto de webforJ creado a partir de un arquetipo ya tiene el plugin. Para agregarlo a un proyecto existente:
- Maven
- Gradle
Declarar el plugin con <extensions>true</extensions> vincula sus objetivos a la construcción sin bloques de ejecución que escribir:
<plugin>
<groupId>com.webforj</groupId>
<artifactId>webforj-maven-plugin</artifactId>
<extensions>true</extensions>
</plugin>
Agrega el plugin a través de una dependencia de classpath de buildscript y aplícalo:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath "com.webforj:webforj-gradle-plugin:${webforjVersion}"
}
}
apply plugin: 'com.webforj'
Objetivos y tareas
Tres objetivos se vinculan a fases que ya ejecutas, por lo que un mvn package normal o ./gradlew build produce una aplicación con su frontend compilado, y la fase de prueba ejecuta las pruebas de frontend junto con las pruebas de Java. La vigilancia es la que inicias manualmente durante el desarrollo:
| Objetivo de Maven | Tarea de Gradle | Ejecuta | Qué hace |
|---|---|---|---|
bundle | webforjBundle | prepare-package, antes de cada jar y war | Compila el frontend para la aplicación empaquetada |
test | webforjTest | con la fase de prueba | Ejecuta las pruebas de frontend |
clean | webforjCleanFrontend | con la fase de limpieza | Elimina el frontend generado |
watch | webforjWatch | manualmente, junto con la aplicación | Recompila al cambiar durante el desarrollo |
push-keys | webforjPushKeys | manualmente, una vez por despliegue | Genera el par de claves para notificaciones push e imprime las líneas de configuración |
bbj-setup | Solo Maven | manualmente, en la máquina BBj | Instala BBjShip en el BBj local y habilita su punto final de despliegue |
bbj-package | Solo Maven | con la fase de paquete, con un bloque <bbj> | Escribe el archivo de despliegue BBj |
bbj-deploy | Solo Maven | con la fase de instalación, con un bloque <bbj> | Despliega la aplicación en BBjServices |
bbj-undeploy | Solo Maven | manualmente | Elimina la aplicación de BBjServices |
Inicia la vigilancia como objetivo antes del que ejecuta la aplicación, por ejemplo, mvn compile webforj:watch spring-boot:run. Un proyecto arquetipo establece esto como el objetivo predeterminado, por lo que mvn solo inicia todo. Su comportamiento de recarga se detalla en Vigilancia de frontend.
Salta las pruebas de frontend junto con las pruebas de Java, -DskipTests o -Dmaven.test.skip con Maven y -PskipTests con Gradle.
Opciones
Establece opciones como elementos <configuration> de Maven, o como valores de extensión webforj { } de Gradle. Cada opción de Maven, excepto plugins y hotswap, también acepta una propiedad -D en la línea de comandos. Las dos herramientas de construcción se reflejan entre sí:
| Elemento de Maven | Propiedad de Maven | Gradle | Predeterminado | Propósito |
|---|---|---|---|---|
bunVersion | webforj.bundler.version | bunVersion | gestionado | Fijar la versión de Bun para construcciones reproducibles |
bunPath | webforj.bundler.path | bunPath | descarga | Utilizar un binario de Bun existente en lugar de descargar |
cacheDir | webforj.bundler.cacheDir | cacheDir | ${user.home}/.webforj/bun | Donde se almacenan en caché los binarios de Bun gestionados |
sourceRoot | webforj.bundler.sourceRoot | sourceRoot | src/main/frontend | Donde residen las fuentes de entrada del frontend |
workDir | webforj.bundler.workDir | workDir | target/bundle | Donde el plugin escribe sus archivos de construcción generados |
plugins | — | plugins | — | Activar una extensión por id, como webforj-tailwind |
excludePackages | webforj.bundler.excludePackages | excludePackages | — | Prefijos de paquete a omitir durante el escaneo de anotaciones |
eager | webforj.bundler.eager | eager | false | Cargar todo el frontend al inicio de la aplicación en lugar de por vista, ver Paquete ansioso |
testArgs | webforj.bundler.testArgs | testArgs | — | Argumentos adicionales pasados al ejecutor de pruebas de frontend |
hotswap | — | hotswap | — | Adjuntar una herramienta de actualización de clase a la aplicación que inicia la construcción, ver Hotswap |
Por ejemplo, para fijar la versión de Bun y activar Tailwind:
- Maven
- Gradle
<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 {
bunVersion = '1.3.0'
plugins.put('webforj-tailwind', 'true')
}