在我的项目中,我有几个 Maven 模块,其中一个由用 Vaaadin 编写的 UI 组成。
一切似乎都很好,但是当我尝试在 Tomcat 中运行该项目时,我在浏览器中收到一个错误,表明 Vaadin 没有被编译。
任何人都可以描述我应该做什么来强制对整个项目的 mvn 包进行 Vaadin 编译,或者可能在使用 Vaadin 的模块上进行 mvn 安装?
问问题
827 次
2 回答
0
我只是假设你不是故意使用“预防”这个词。你的pom中有这些插件吗?
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<filesets>
<fileset>
<directory>src/main/webapp/VAADIN/widgetsets</directory>
</fileset>
</filesets>
</configuration>
</plugin>
<plugin>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-maven-plugin</artifactId>
<version>${vaadin.plugin.version}</version>
<configuration>
<extraJvmArgs>-Xmx512M -Xss1024k</extraJvmArgs>
<!-- <runTarget>mobilemail</runTarget> -->
<!-- We are doing "inplace" but into subdir VAADIN/widgetsets. This
way compatible with Vaadin eclipse plugin. -->
<webappDirectory>${basedir}/src/main/webapp/VAADIN/widgetsets</webappDirectory>
<hostedWebapp>${basedir}/src/main/webapp/VAADIN/widgetsets</hostedWebapp>
<noServer>true</noServer>
<!-- Remove draftCompile when project is ready -->
<draftCompile>false</draftCompile>
<compileReport>true</compileReport>
<style>OBF</style>
<strict>true</strict>
<runTarget>http://localhost:8080/</runTarget>
</configuration>
<executions>
<execution>
<configuration>
<!-- if you don't specify any modules, the plugin will find them -->
<!-- <modules> <module>com.vaadin.demo.mobilemail.gwt.ColorPickerWidgetSet</module>
</modules> -->
</configuration>
<goals>
<goal>resources</goal>
<goal>update-widgetset</goal>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
确保您已经定义vaadin.plugin.version
了与您的 Vaadin 版本匹配的变量,如果您需要检查“原始”Vaadin 应用程序 pom 中的任何其他内容,请通过调用生成一个新的 Vaadin 应用程序:
mvn archetype:generate -DarchetypeGroupId=com.vaadin -DarchetypeArtifactId=vaadin-archetype-application -DarchetypeVersion=7.0.5 -DgroupId=your.company -DartifactId=project-name -Dversion=1.0 -Dpackaging=war
您当然可以更改 archetypeVersion 以满足您的需要。
如果您确实打算阻止小部件集编译,我想您将 vaadin-maven-plugin 中的resources
and目标注释掉就足够了。compile
我对此不是 100% 确定的,因为我只在 Vaadin 6 中做过(..在其中你需要从 gwt-maven-plugin 中注释掉相同的目标)
于 2013-04-30T05:07:18.083 回答
0
如果您使用 vaadin 插件,则必须使用 GWT 编译器编译它们,并且必须使用已编译的小部件集。
最好的方法是eclipse插件。你可以通过谷歌搜索找到它。
对于使用自定义小部件集:https ://vaadin.com/en_GB/book/vaadin6/-/page/gwt.usage.html (vaadin 6)
于 2013-04-29T20:09:40.707 回答