【发布时间】:2017-04-20 08:42:59
【问题描述】:
当我为我的项目编译小部件集时,它会跳过从类路径上的 jar 中继承的小部件集。手动将必要的小部件集添加到我的 .gwt.xml 文件中并没有帮助,因为每次我重新编译小部件集时,构建脚本都会替换该文件。
具体来说,我接手了一个使用 vaadin FilterTable 插件的项目(所以我只使用了 vaadin 几个星期)。我从 github 下载了插件并进行了一些更改(但没有涉及小部件集/连接器),然后尝试在我的主项目中使用新版本。将 FilteringTable7 项目添加到我的部署程序集将不起作用,因为该项目包含与一些演示表关联的主 UI 类,导致部署 .war 而不是 .jar。相反,我导出了一个 FilteringTable7A.jar 文件并将其包含在部署程序集中以及构建路径库(我假设是类路径)中。当然我也从 ivy.xml 文件中删除了官方插件。
FilteringTable 演示项目随着我的更改而正确构建和运行。带有小部件集的 .jar 文件已成功复制到 wtpwebapps/[project]/WEB-INF/lib/,并在详细的小部件集编译器输出的类路径中列出。编译器输出未将其列为找到的小部件集:
Widgetsets found from classpath:
org.vaadin.hene.popupbutton.widgetset.PopupbuttonWidgetset in jar:file:C:/Users/matt/.ivy2/cache/org.vaadin.addons/popupbutton/jars/popupbutton-2.5.0.jar!/
com.vaadin.DefaultWidgetSet in jar:file:C:/Users/matt/.ivy2/cache/com.vaadin/vaadin-client/jars/vaadin-client-7.1.11.jar!/
com.hra.diams.widgetset.DiamsWidgetset in file://C/Users/matt/Documents/...
所以小部件集编译没有错误,当我运行项目时,我得到了臭名昭著的
Widgetset 'com.hra.diams.widgetset.DiamsWidgetset' 不包含 实现...
我已经阅读(并且以前得到过帮助)许多与此错误相关的答案,但在这种情况下,问题不是将 servlet 指向正确的小部件集,而是将小部件集编译器指向继承的小部件集。当我添加
<inherits name="org.tepi.filtertable.gwt.FilterTableWidgetset" />
到我的 DiamsWidgetset.gwt.xml 文件并重新编译widgsetset,编译器会忽略它并将文件改回。
奇怪的是,它上周工作了几个小时,但是当我刷新一些东西以获取最新更改时,它停止工作并且现在不会回来了。
如何让编译器找到插件所需的小部件集?
提前致谢。
带有 Vaadin 插件 2.2.0.201306261112 的 Eclipse 3.7.2 发布到 Tomcat v7.0
【问题讨论】:
-
我在使用 Vaadin 7.2 时遇到了类似的问题。据我记得有一个关于小部件集编译的错误,该错误已在 7.3 中修复。也许只是尝试使用最新版本?对我来说,当我升级到最新版本时,我的问题就消失了。