Vaadin7.7.26编译widgetset时找不到存在的gwt.xml及DTD下载报错问题
Vaadin 7.7.26 Widgetset编译报错排查方案
核心问题定位
该报错属于误报,根因是旧版GWT的DTD官方托管地址(googlecode域名)早已停用,IDE的XML校验工具拉取DTD失败后,标记该gwt.xml文件为非法配置,导致后续编译流程无法识别该文件,最终抛出类路径下找不到文件的错误提示。
具体解决步骤
- 修改
AppDefaultWidgetset.gwt.xml的DOCTYPE声明
将文件头部的旧DTD声明:
直接删除,或替换为匹配GWT 2.7.0版本的可用声明:<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 1.7.0//EN" "http://google-web-toolkit.googlecode.com/svn/tags/1.7.0/distro-source/core/src/gwt-module.dtd">
注:GWT编译流程本身不强制要求DOCTYPE声明,仅IDE的XML校验功能会用到,删除不会影响正常编译。<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.7.0//EN" "https://raw.githubusercontent.com/gwtproject/gwt/2.7.0/distro-source/core/src/gwt-module.dtd"> - 清理本地缓存
依次删除以下缓存目录:- XML校验工具缓存目录:
C:\Users\axioma28\.lemminx - 项目编译输出目录:项目根路径下的
target文件夹 - IDE系统缓存:以IDEA为例,执行
File > Invalidate Caches,勾选清除文件系统缓存后重启IDE
- XML校验工具缓存目录:
- 重新执行编译
执行Maven命令完成widgetset更新与项目编译:mvn vaadin:update-widgetset clean install
额外校验项
如果修改后仍未解决,检查以下配置:
- 确认pom.xml中Vaadin依赖、Vaadin插件的版本均为7.7.26,无版本冲突
- 确认
src/main/resources目录已被标记为项目资源根目录,编译时会自动将该目录下的文件加入类路径 - 确认项目引入的GWT依赖版本为2.7.0,与Vaadin 7.7.26的依赖要求匹配
内容的提问来源于stack exchange,提问作者Tullio
相关产品推荐
相关产品推荐

