Как скомпилировать набор виджетов в vaadin? - PullRequest
1 голос
/ 16 декабря 2011

Я пытаюсь использовать дополнение визуализации ForVaadin.Проблема в том, что я должен скомпилировать пользовательский набор виджетов.Я занимался этим целый день и до сих пор не могу скомпилировать.Прежде всего, вот моя конфигурация:

  • Vaadin 6.7.1
  • gwt 2.3.0

в моем файле pom есть следующие зависимости:

  • gwt-ajaxloader 1.1.0
  • validation-api 1.0.0.GA
  • gwt-visualization 1.0.2
  • gwt-user 2.3.0
  • visualizationsforvaadin 1.1.2.

Когда я пытаюсь скомпилировать widgetSet с плагином maven gwt, я получаю исключение:

Loading inherited module 'com.google.gwt.core.XSLinker'
[ERROR] Line 22: Unexpected element 'when-linker-added'
[ERROR] Failure while parsing XML

Интересная вещьявляется то, что библиотека gwt-dev, которая автоматически загружается (насколько я знаю), имеет версию 2.0.3 Я перепробовал все возможное (даже невозможное) и до сих пор ничего.В какой-то момент у меня были другие исключения, которые жаловались на то, что импорт классов проверки не может быть разрешен.Я думаю, что это было решено некоторыми другими зависимостями.Пожалуйста помоги.Спасибо.

Конфигурация POM:

<plugin>
 <groupId>org.codehaus.mojo</groupId>
 <artifactId>gwt-maven-plugin</artifactId>
<!-- Version 2.1.0-1 works at least with Vaadin 6.5 -->
 <version>2.3.0</version>
 <configuration>
     <!-- if you don't specify any modules, the plugin will find them -->
     <!--modules>
         ..
     </modules-->
     <webappDirectory>${project.build.directory}/${project.build.finalName}/VAADIN/widgetsets</webappDirectory>
     <extraJvmArgs>-Xmx512M -Xss1024k</extraJvmArgs>
     <runTarget>clean</runTarget>
     <hostedWebapp>${project.build.directory}/${project.build.finalName}</hostedWebapp>
     <noServer>true</noServer>
     <port>8080</port>
     <soyc>false</soyc>
 </configuration>
 <executions>
     <execution>
         <goals>
             <goal>resources</goal>
             <goal>compile</goal>
         </goals>
     </execution>
 </executions>
 <dependencies>
    <dependency>
    <groupId>com.google.gwt</groupId>
    <artifactId>gwt-dev</artifactId>
    <version>2.3.0</version>
    </dependency>
    <dependency>
    <groupId>com.google.gwt</groupId>
    <artifactId>gwt-user</artifactId>
    <version>${gwt.version}</version>
    </dependency>
</dependencies>
</plugin>

А вот зависимости GWT

<dependency>
        <groupId>com.google.gwt.google-apis</groupId>
        <artifactId>gwt-visualization</artifactId>
        <version>1.0.2</version>
    </dependency>
    <dependency>
        <groupId>javax.validation</groupId>
        <artifactId>validation-api</artifactId>
        <version>1.0.0.GA</version>
    </dependency>        
    <dependency>
        <groupId>com.google.gwt.google-apis</groupId>
        <artifactId>gwt-ajaxloader</artifactId>
        <version>1.1.0</version>
    </dependency>
<dependency>
        <groupId>org.vaadin.addons</groupId>
        <artifactId>visualizationsforvaadin</artifactId>
        <version>1.1.2</version>
    </dependency>
    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-web-api</artifactId>
        <version>6.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.vaadin</groupId>
        <artifactId>vaadin</artifactId>
        <version>${vaadin.version}</version>
    </dependency>
    <dependency>
        <groupId>com.google.gwt</groupId>
        <artifactId>gwt-user</artifactId>
        <version>${gwt.version}</version>
    </dependency>

Ответы [ 2 ]

3 голосов
/ 02 февраля 2014

Я боролся с этим за последние 2 дня.Для дальнейшего использования:

Что вам понадобится:

<dependency>
        <groupId>com.vaadin</groupId>
        <artifactId>vaadin-client-compiler</artifactId>
        <version>${versions.vaadin}</version>
    </dependency>

Настройте gwt-maven-plugin следующим образом (вам, конечно, могут понадобиться не все конфиги, которые я использовал):

<plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>gwt-maven-plugin</artifactId>
            <version>${versions.gwt}</version>
            <configuration>
                <extraJvmArgs>-Xmx512M -Xss1024k</extraJvmArgs>
                <webappDirectory>${basedir}/src/main/webapp/VAADIN/widgetsets
                </webappDirectory>
                <hostedWebapp>${basedir}/src/main/webapp/VAADIN/widgetsets
                </hostedWebapp>
                <noServer>true</noServer>
                <draftCompile>true</draftCompile>
                <compileReport>false</compileReport>
                <style>DETAILED</style>
                <runTarget>http://localhost:8080/</runTarget>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>resources</goal>
                        <goal>compile</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

vaadin-maven-plugin:

<plugin>
            <groupId>com.vaadin</groupId>
            <artifactId>vaadin-maven-plugin</artifactId>
            <version>${versions.vaadin}</version>
            <executions>
                <execution>
                    <configuration>
                        <!--<modules>
                            <module>org.vaadin.aceeditor.AceEditorWidgetSet</module>
                        </modules>-->
                    </configuration>
                    <goals>
                        <goal>update-widgetset</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

Вы также можете настроить свой maven-clean-plugin:

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-clean-plugin</artifactId>
            <version>2.5</version>
            <configuration>
                <filesets>
                    <fileset>
                        <directory>
                            ${basedir}/src/main/webapp/VAADIN/widgetsets
                        </directory>
                    </fileset>
                </filesets>
            </configuration>
        </plugin>

В файле web.xml дляВаш сервлет (например, Ace Editor):

    <init-param>
        <param-name>widgetset</param-name>
        <param-value>org.vaadin.aceeditor.AceEditorWidgetSet</param-value>
    </init-param>

Обратите внимание, что я НЕ включил gwt в качестве зависимости в мой pom.xml.

1 голос
/ 19 декабря 2011

У меня есть полностью функциональный проект Vaadin с пользовательскими виджетами в Eclipse, и я не могу найти ссылки на gwt-dev нигде в проекте. Перейдите в Свойства проекта -> Путь сборки Java -> Библиотеки и удалите все ссылки на gwt-dev. Также удалите его из вашего pom.xml и попробуйте перекомпилировать набор виджетов.

edit: Это также может быть ваша gwt-user зависимость. Попробуйте установить версию gwt-user на 2.3.0 (если это уже не так) и установите область действия на provided.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...