где разместить мои собственные эмулированные классы Google? - PullRequest
2 голосов
/ 22 марта 2011

Это моя текущая настройка

src/
    com
        acme
            Model.gwt.xml   
            model
                token
                    Token.java
    ...
test/
super
    com
        acme
            jre
                java
                    lang
                        CloneNotSupportedException.java (introducing class since GWT doesnt support it)
        google              
            gwt
                emul
                    java
                        lang
                            Character.java (added a method that GWT doesn't support)

Путь суперисточника в Model.gwt.xml

есть

super-source path="jre"

при компиляции компилятор жалуется на ошибки в обоих моих эмулируемых классах

Ошибки в .... Token.java

... isWhitespace (char) не определено для тип Character ... Нет исходного кода доступен для типа java.lang.CloneNotSupportedException;

Похоже, он не улавливает то, что я имитировал.

Следуя документации GWT, я также попытался перенести папку "jre" в src / com / acme /, то есть буквально на том же уровне есть модуль xml. Но не работает.

Я прочитал в посте, что эмулятор Google подобран сам, поэтому я поместил jre и google в super, но включил только "jre" в качестве супер источника

Я использую gwt-maven-plugin для компиляции, и моя выдержка из pom.xml

Что я здесь не так делаю?

Ответы [ 2 ]

2 голосов
/ 26 мая 2012

Чтобы избавиться от ошибок компиляции из суперисточника в eclipse, просто измените путь сборки Java; в любой исходной папке, где у вас есть эмулированный код, поместите фильтр исключений, например **/jre/**/*.java или **/emul/**/*.java. Это будет радовать идею, в то время как режим разработчика gwt и компиляции будут иметь эмулированный супер-источник на своем пути к классам.

О, и я заметил, что вы используете maven, а не затмение. Просто исключите ваш эмулируемый пакет в maven-source-plugin. Таким образом, компилятор maven никогда не видит эмулируемые файлы, а пакет с исходным кодом все еще готов для gwt: goal.

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <configuration>
                <excludes>
                    <value>**/emul/**/*.java</value>
                </excludes>
            </configuration>
        </plugin>
    </plugins>

Совет для пользователей IDE (пробовал в Eclipse)

Чтобы гарантировать, что вышеупомянутые фильтры исключения сохраняются между обновлениями / импортом проекта Maven, добавьте <excludes> в конфигурацию плагина вашего компилятора Maven:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <excludes>
                    <value>**/emul/**/*.java</value>
                </excludes>
            </configuration>
        </plugin>
0 голосов
/ 10 июня 2011

Причина, по которой он не работает, заключается в том, что вы, вероятно, все еще работаете в режиме разработчика.Код, который вы сделали выше, должен работать, когда вы компилируете и разворачиваете свое приложение в GWT.

...