我在使用Maven为我的vaadin应用程序编译自定义widgetset时遇到问题。
在我的maven模块中,有一个jar模块包含自定义小部件和一个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
在我的war项目中,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] [ERROR] [WARN]找不到小部件类com.mypackage.ui.VMyWidget。 com.mypackage.MyComponent组件不会包含在widgetset中。
我错过了什么?为什么GWT编译器找不到它需要的源?
答案 0 :(得分:4)
我想我发现了这个问题。该包必须为com.mypackage.client.ui
,即它似乎必须包含client
旁边的MyWidgetSet.gwt.xml
子包。虽然记录在案,但我忽略了这一点。
现在似乎有用了。
答案 1 :(得分:1)
我也遇到了这个问题。我读了这个主题的成千上万的答案,但从来没有找到有帮助的东西。我注意到,如果你在eclipse中运行tomcat作为适配器并将项目部署到其中,那么有时在你构建项目之后,目标文件夹与eclipse不同步,你必须按F5 。 执行此操作后,可以加载widgetset。