Где разместить мои собственные эмулированные классы Google?
Это моя текущая настройка
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 в качестве super source
Я использую gwt-maven-plugin для компиляции и мой выдержка из pom.xml
Что я здесь не так делаю?
2 ответа
Чтобы избавиться от ошибок компиляции из суперисточника в eclipse, просто измените путь сборки Java; в любой исходной папке, где у вас есть эмулированный код, поместите в фильтр исключения, такой как **/jre/**/*.java
или же **/emul/**/*.java
, Это будет радовать идею, в то время как режим разработчика gwt и компиляции будут иметь эмулированный супер-источник на своем пути к классам.
Ох, и я заметил, что вы используете Maven, а не затмение. Просто исключите ваш эмулированный пакет в maven-source-plugin. Таким образом, компилятор maven никогда не видит эмулируемые файлы, а пакет с исходным кодом все еще готов для gwt: цели.
<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>
Причина, по которой он не работает, заключается в том, что вы, вероятно, все еще работаете в режиме разработчика. Код, который вы сделали выше, должен работать, когда вы GWT компилируете и разворачиваете свое приложение.