Запросить фактическую проверку при настройке нескольких проектов - PullRequest
0 голосов
/ 11 октября 2011

Я попытался перейти на версию gwt2.4 и столкнулся с проблемой. Я использую несколько проектов в моей настройке. У меня есть проект с серверным кодом, один проект с общим кодом, который можно использовать в разных проектах gwt, и проект gwt, связывающий все вместе. Я строю все с Maven. я следовал инструкциям по обработке аннотаций, найденным здесь: http://code.google.com/p/google-web-toolkit/wiki/RequestFactoryInterfaceValidation

когда я компилирую свой общий проект, в котором находятся прокси и сервисы, создается папка «generate-sources \ apt \» с DeobfuscatorBuilder.java. У меня есть источники этого проекта в качестве зависимости моего основного проекта, и я также пытаюсь запустить валидатор, но DeobfuscatorBuilder.java здесь не создается. Все компилируется, но когда я вызываю запрос на requestfactory, я получаю ошибку:

com.google.web.bindery.requestfactory.server.UnexpectedException: No RequestContext for operation ZwI9iqZS626uTt_TFwRtUwPYSOE=

Я предполагаю, что в моей настройке есть ошибка, но я не смог найти где .. Кто-нибудь знает, как решить эту проблему?

С уважением Арне

UPDATE:

Я добавил это в свой пом:

           <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>

                <executions>
                    <execution>
                        <id>unpack</id>
                        <phase>initialize</phase>
                        <goals>
                            <goal>unpack</goal>
                            <!-- <goal>build-classpath</goal> -->
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>com.myproject.core</groupId>
                                    <artifactId>shared</artifactId>
                                    <version>${shared.version}</version>
                                    <classifier>sources</classifier>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>${project.build.directory}/com.myproject.shared</outputDirectory>
                                </artifactItem>
                                </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

Это распаковывает источники моих зависимостей и помещает их в мою целевую папку. Затем я добавил:

            <configuration>
                <sourceDirectory>target/com.fileee.shared</sourceDirectory>
            </configuration>

к моему процессору-плагину.

Таким образом, нет необходимости иметь все проекты в рабочей области, и он должен работать с системой непрерывной интеграции. Я бы не понял, что без ответа от Andys :)

1 Ответ

1 голос
/ 19 ноября 2011

У меня была та же проблема, и я часами рыскал в Интернете, пытаясь найти ответ, но безуспешно. Если я добавляю процессорный плагин в общий проект, он генерирует класс DeobfuscatorBuilder, но я получаю то же исключение No RequestContext, что и вы. Если у меня просто есть плагин processsor в военном проекте GWT, то компоновщик вообще не создается.

При большом количестве проб и ошибок я обнаружил, что добавление директории с исходным кодом из общего проекта в конфигурацию плагина процессора в военном проекте сработало ... http://code.google.com/p/android-shuffle/source/browse/shuffle-app-engine/pom.xml#269

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

Приветствие Andy

...