webforJ构建插件 26.01
webforJ构建插件在您的Maven或Gradle构建中运行webforJ的构建时间工作。您只需添加一次,它就会将其目标绑定到您已经运行的阶段,无需保持同步的独立前端项目。它驱动前端打包工具,编译前端、运行前端测试、提供开发监视服务,并将热替换工具附加到它启动的应用。
添加插件
从原型创建的webforJ项目已经包含了插件。要将其添加到现有项目中:
- Maven
- Gradle
通过声明插件 <extensions>true</extensions> 将其目标绑定到构建,而无需编写执行块:
pom.xml
<plugin>
<groupId>com.webforj</groupId>
<artifactId>webforj-maven-plugin</artifactId>
<extensions>true</extensions>
</plugin>
通过buildscript类路径依赖添加插件并应用它:
build.gradle
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath "com.webforj:webforj-gradle-plugin:${webforjVersion}"
}
}
apply plugin: 'com.webforj'
目标和任务
三个目标绑定到您已经运行的阶段,因此普通的 mvn package 或 ./gradlew build 会生成一个包含其前端编译的应用,并且测试阶段会与Java测试一起运行前端测试。监视是您在开发期间手动启动的:
| Maven目标 | Gradle任务 | 运行 | 功能 |
|---|---|---|---|
bundle | webforjBundle | prepare-package,在每个jar和war之前 | 为打包的应用编译前端 |
test | webforjTest | 与测试阶段一起 | 运行前端测试 |
clean | webforjCleanFrontend | 与清理阶段一起 | 删除生成的前端 |
watch | webforjWatch | 手动,和应用一起 | 在开发期间变更时重建 |
push-keys | webforjPushKeys | 手动,每次部署一次 | 生成推送通知的密钥对并打印配置行 |
bbj-setup | 仅Maven | 手动,在BBj机器上 | 在本地BBj中安装BBjShip并启用其部署端点 |
bbj-package | 仅Maven | 与打包阶段一起,有<bbj>块 | 写入BBj部署归档 |
bbj-deploy | 仅Maven | 与安装阶段一起,有<bbj>块 | 将应用部署到BBjServices |
bbj-undeploy | 仅Maven | 手动 | 从BBjServices移除应用 |
在运行应用之前启动监视作为目标,例如mvn compile webforj:watch spring-boot:run。原型项目将其设置为默认目标,因此单独使用mvn可以启动所有内容。它的重载行为在前端监视中进行了说明。
跳过前端测试以及Java测试,使用-DskipTests(Maven)或-PskipTests(Gradle)。
选项
将选项设置为Maven <configuration> 元素,或设置为Gradle webforj { } 扩展值。除plugins和hotswap外,所有Maven选项还接受命令行上的 -D 属性。这两个构建工具是互相镜像的:
| Maven元素 | Maven属性 | Gradle | 默认值 | 目的 |
|---|---|---|---|---|
bunVersion | webforj.bundler.version | bunVersion | managed | 锁定Bun版本以实现可重复构建 |
bunPath | webforj.bundler.path | bunPath | download | 使用现有Bun二进制文件而不是下载 |
cacheDir | webforj.bundler.cacheDir | cacheDir | ${user.home}/.webforj/bun | 缓存管理的Bun二进制文件的路径 |
sourceRoot | webforj.bundler.sourceRoot | sourceRoot | src/main/frontend | 前端入口源文件所在位置 |
workDir | webforj.bundler.workDir | workDir | target/bundle | 插件写入其生成的构建文件的路径 |
plugins | — | plugins | — | 通过id开启或关闭一个扩展,例如webforj-tailwind |
excludePackages | webforj.bundler.excludePackages | excludePackages | — | 在注解扫描过程中跳过的包前缀 |
eager | webforj.bundler.eager | eager | false | 在应用启动时而不是按视图加载整个前端,见急切打包 |
testArgs | webforj.bundler.testArgs | testArgs | — | 传递给前端测试运行程序的额外参数 |
hotswap | — | hotswap | — | 将类更新工具附加到构建启动的应用,见热替换 |
例如,要锁定Bun版本并开启Tailwind:
- Maven
- Gradle
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>
build.gradle
webforj {
bunVersion = '1.3.0'
plugins.put('webforj-tailwind', 'true')
}