2013-04-29 28 views
0

在我的項目中,我有幾個Maven模塊,其中一個包含用Vaaadin編寫的UI。
一切似乎都很好,但是當我試圖在Tomcat中運行項目時,我收到一個錯誤消息,指示Vaadin未編譯。
任何人都可以描述我應該做什麼來強制Vaadin編譯整個項目的mvn包,或者可以在Vaadin模塊上安裝mvn嗎?在Maven中使用Vaadin

回答

0

如果您使用vaadin插件,則必須使用GWT編譯器編譯它們,並且必須使用編譯的widgetset。

最好的方法是eclipse插件。你可以通過google找到它。

對於使用自定義的視窗元件:https://vaadin.com/en_GB/book/vaadin6/-/page/gwt.usage.html(vaadin 6)

+1

我不會考慮eclipse插件是編譯widgetset的'最好的方式',特別是當問題是關於在_maven_中使用vaadin時。人們使用maven的一個原因是您不必「搜索谷歌」並手動執行這些操作。 – miq 2013-04-30 05:34:30

+0

我寫了「搜索谷歌」,因此沒有給更多的鏈接許可證。鏈接是:https://developers.google.com/eclipse/docs/getting_started – kodmanyagha 2013-05-01 18:30:03

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來滿足您的需求。

如果您的意思是防止widgetset編譯,我想這足以讓您註釋掉vaadin-maven插件中的resourcescompile目標。我不是100%確定的,因爲我只在Vaadin 6中完成了它(你需要在gwt-maven-plugin中註釋同樣的目標)