0

在我的项目中,我有几个 Maven 模块,其中一个由用 Vaaadin 编写的 UI 组成。
一切似乎都很好,但是当我尝试在 Tomcat 中运行该项目时,我在浏览器中收到一个错误,表明 Vaadin 没有被编译。
任何人都可以描述我应该做什么来强制对整个项目的 mvn 包进行 Vaadin 编译,或者可能在使用 Vaadin 的模块上进行 mvn 安装?

4

2 回答 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 中的resourcesand目标注释掉就足够了。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 回答