Ошибка компиляции GWT с Maven: экземпляр Presenter не определен. Забудете комментировать @Presenter или @EventHandler?

Мигрируйте из Ant Ivy в инструмент сборки Maven.

Маленькая информация о проекте:

  1. Мультимодульный проект с несколькими артефактами развертывания.
  2. На Ant Ivy все нормально, компиляция и развертывание проходит нормально.

Миграция на Maven проходит успешно с версией 2.7.0 GWT. После увеличения версии до 2.8.1, смотрел, чтобы получить ошибку компиляции gwt.

[ERROR]com.example.gwt.client.module.user.GWTEventBus:
Method createInfoPage: No instance of com.example.gwt.client.module.user.presenter.
info.InfoPresenter is defined. Have you forgotten to annotate your event handler 
with @Presenter or @EventHandler?   
[INFO]  at com.mvp4g.util.config.loader.annotation.EventsAnnotationsLoader.
buildPresentersAndEventHandlers (EventsAnnotationsLoader.java:425)   
...long stack trace ...   
at com.google.gwt.dev.Compiler.main(Compiler.java:125)
[INFO][ERROR] Errors in 'com.example.gwt.GWTModule'   
[INFO][ERROR] Line 137: Failed to resolve 'com.mvp4g.client.Mvp4gModule' via deferred binding

Строка 137 содержит Mvp4gModule module = GWT.create(Mvp4gModule.class);

Попытки исправить:
1. Сравнил сопоставленные зависимости classpath от Ant Ivy с Maven classpath, все то же самое. Все версии зависимостей и плагинов в порядке, без каких-либо конфликтов.
2. Пробовал с двумя разными плагинами gwt maven, но получаю одинаковую ошибку с любыми конфигурациями:

<plugin>
                <groupId>net.ltgt.gwt.maven</groupId>
                <artifactId>gwt-maven-plugin</artifactId>
                <version>1.0-rc-6</version>
                <executions>
                    <execution>
                        <phase>compile</phase>
                        <goals>
                            <goal>import-sources</goal>
                            <goal>compile</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <moduleName>com.example.gwt.GWTModule</moduleName>
                    <jvmArgs>
                        <jvmArg>-Xmx768M</jvmArg>
                        <jvmArg>-Xss10M</jvmArg>
                    </jvmArgs>
                    <failOnError>false</failOnError>
                    <sourceLevel>1.8</sourceLevel>
                    <compilerArgs>
                        <arg>-compileReport</arg>
                        <arg>-XcompilerMetrics</arg>
                    </compilerArgs>                    
   <warDir>${project.build.directory}/${project.build.finalName}</warDir>
                    <classpathScope>compile+runtime</classpathScope>
                    <startupUrls>
                        <startupUrl>Validation.html</startupUrl>
                    </startupUrls>
                </configuration>
            </plugin>

Главная странность в том, что Ant успешно компилируется. Цель Ant compile-gwt имеет ту же конфигурацию и аргументы, что и плагин Maven gwt-plugin.

0 ответов

Другие вопросы по тегам