如何强制在Vaadin中编译widgetset?

时间:2011-03-14 20:43:15

标签: eclipse add-on vaadin sparklines

我正在尝试在我的应用程序中使用sparklines add。但是,eclipse系统地拒绝编译相应的widgetset,即如果我在我的widgetset中指定引用sparklines widgetset的inherit标记,如下所示:

<inherits name="org.vaadin.artur.icepush.IcepushaddonWidgetset" />
<inherits name="org.vaadin.hezamu.googlemapwidget.widgetset.GooglemapwidgetWidgetset" />
<inherits name="org.vaadin.sparklines.SparklinesWidgetset" />
<inherits name="com.fluxtream.widgets.FluxtreamwidgetsWidgetset" />

... eclipse抱怨以下错误:

Loading inherited module 'com.fluxtream.widgets.FluxtreamwidgetsWidgetset'
   Loading inherited module 'com.fluxtream.dashboard.widgetset.FlxDashboardWidgetset'
      Loading inherited module 'org.vaadin.sparklines.SparklinesWidgetset'
         [ERROR] Unable to find 'org/vaadin/sparklines/SparklinesWidgetset.gwt.xml' on your classpath; could be a typo, or maybe you forgot to include a classpath entry for source?
      [ERROR] Line 26: Unexpected exception while processing element 'inherits'

但是,我已经验证了widgetset确实在我的项目的pom中被声明为依赖项,并且我还验证它出现在eclipse IDE中的“Maven Dependencies”库图标下。

此外,每当我尝试重新编译我的widgetset时,在显示上述错误之后,我就会看到我原来的widgetset.gwt.xml文件已被修改,结果如下所示:

<inherits name="org.vaadin.artur.icepush.IcepushaddonWidgetset" />
<inherits name="org.vaadin.hezamu.googlemapwidget.widgetset.GooglemapwidgetWidgetset" />

<inherits name="com.fluxtream.widgets.FluxtreamwidgetsWidgetset" />


<inherits name="com.fluxtream.dashboard.widgetset.FlxDashboardWidgetset" />

我真的很困惑,因为我不明白我做错了什么。我使用的其他附加组件工作得很好(icepush和googlemap),我真的不明白我在这里做错了什么。

1 个答案:

答案 0 :(得分:6)

Vaadin Eclipse插件管理你的gwt.xml,这就是为什么如果你从类路径添加/删除附加组件它会被修改的原因。 基本上这意味着如果在Eclipse中工作,则不必手动修改gwt.xml。此外,Eclipse插件对maven(或pom文件)一无所知,其中的任何信息都不会影响它。

您可以通过两种方式编译widgetset。首先使用Eclipse插件(工具栏上的按钮)或maven。这听起来你正在混合那些。

最简单的设置是将所有附加jar放入WEB-INF / lib并使用eclipse插件编译widgetset。 gwt.xml应该自动更新,但有时需要刷新(或jar删除/添加过程)才能让插件通知发生变化。

此外,检查项目首选项中的Vaadin设置是否符合您的要求。