You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vaadin 24升级后vaadin-checkbox重复注册DOMException问题求助

解决Vaadin 24升级后"vaadin-checkbox"重复注册DOMException问题

核心原因

Vaadin 24对前端组件的注册机制做了更严格的管控,升级后出现重复注册通常是因为:

  • 前后端依赖版本未完全对齐,残留了Vaadin 23的组件定义
  • mvn verify阶段会重新触发前端构建,但未彻底清理旧的缓存或构建产物
  • 第三方组件/自定义代码未适配Vaadin 24的组件注册逻辑

分步解决方案

1. 用Vaadin BOM统一所有依赖版本

在pom.xml的dependencyManagement中引入Vaadin 24的BOM,彻底避免版本不一致:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.vaadin</groupId>
            <artifactId>vaadin-bom</artifactId>
            <version>24.3.9</version> <!-- 替换为你实际使用的24.x版本 -->
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

2. 让Vaadin插件在verify阶段自动清理构建

修改pom.xml的构建插件配置,让clean-frontend、prepare-frontend、build-frontend在verify阶段自动执行,避免手动操作后verify又引入旧资源:

<build>
    <plugins>
        <plugin>
            <groupId>com.vaadin</groupId>
            <artifactId>vaadin-maven-plugin</artifactId>
            <version>24.3.9</version> <!-- 与BOM版本保持一致 -->
            <executions>
                <execution>
                    <phase>verify</phase>
                    <goals>
                        <goal>clean-frontend</goal>
                        <goal>prepare-frontend</goal>
                        <goal>build-frontend</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

3. 彻底清理本地缓存

手动清理以下内容,确保没有残留的旧资源:

  • 删除本地Maven仓库的Vaadin旧依赖:~/.m2/repository/com/vaadin
  • 删除项目根目录的node_modules、package-lock.json(或pnpm-lock.yaml)
  • 删除项目target目录下的frontend、generated文件夹

4. 检查自定义/第三方组件

如果项目里有自定义的vaadin-checkbox扩展或第三方Vaadin组件库:

  • 替换为Vaadin 24兼容的版本,移除基于Vaadin 23的自定义代码
  • 排查第三方依赖是否存在重复引入Vaadin组件的情况,比如同时引入了vaadin-checkbox和包含它的组件包

5. 排查冲突的构建插件

如果pom.xml里有其他前端构建插件(比如frontend-maven-plugin),调整它们的执行顺序,确保在Vaadin插件之后运行,或者直接禁用它们在verify阶段的执行。

验证命令

执行以下命令完成完整构建,验证问题是否解决:

mvn clean vaadin:clean-frontend vaadin:prepare-frontend vaadin:build-frontend verify

启动应用后,检查浏览器控制台是否还会出现重复注册的DOMException。

内容的提问来源于stack exchange,提问作者Horuzi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 21:14:53