2011-12-05 76 views
2

我使用Maven为我的vaadin应用程序编译自定义控件集时遇到了问题。Vaadin使用Maven编译Widgetset

在我的maven模块中,有一个包含自定义小部件和一个war模块的jar模块。

编译罐子模块包含源以及生成的类,基本上是这样的:

com 
|-mypackage 
| |-ui 
| | |- VMyWidget.class 
| | |- VMyWidget.java 
| |- MyComponent.class 
| |- MyComponent.java 
| |- MyWidgetSet.gwt.xml 
|-META-INF 
    |-Manifest.MF 
     |-Vaadin-Widgetsets: com.mypackage.MyWidgetSet 
     |-Vaadin-Package-Version: 1 

在我的战争项目pom.xml中包含以下内容:

<build> 
    <plugins> 
     <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>gwt-maven-plugin</artifactId> 
     <version>2.3.0</version> 
     <configuration> 
      <webappDirectory>${project.build.directory}/${project.build.finalName}/VAADIN/widgetsets</webappDirectory> 
      <extraJvmArgs>-Xmx512M -Xss1024k</extraJvmArgs> 
      <hostedWebapp>${project.build.directory}/${project.build.finalName}</hostedWebapp> 
      <noServer>true</noServer>   
     </configuration> 
     <executions> 
      <execution> 
      <goals> 
       <goal>compile</goal> 
       <goal>generateAsync</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 

     <plugin> 
     <groupId>com.vaadin</groupId> 
     <artifactId>vaadin-maven-plugin</artifactId> 
     <version>1.0.1</version> 
     <executions> 
      <execution> 
      <phase>prepare-package</phase> 
      <goals> 
       <goal>update-widgetset</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 

包含小部件的jar是war项目的依赖关系,因此定义了小部件集。

但是,尽管GWT编译器包含在jar工件中,但似乎并未找到源代码。

因此,我得到以下警告/错误消息:

[INFO] [错误] [WARN] Widget类com.mypackage.ui.VMyWidget没有被发现。组件com.mypackage.MyComponent将不包含在widgetset中。

我错过了什么?为什么GWT编译器找不到它需要的源代码?

回答

4

我想我发现了这个问题。该包必须是com.mypackage.client.ui,即它似乎必须在​​旁边包含client子包。虽然这是记录在案,我忽略了这一点。

它现在似乎工作。

0

我也遇到了这个问题。我阅读了数千个关于这个主题的答案,但从未发现有帮助的东西。比我注意到,如果你在eclipse中将tomcat作为适配器运行,并且将项目部署到它中,那么有时在生成项目之后,目标文件夹与eclipse不同步,并且您必须在其上按F5完成此操作后,可以加载widgetset。