Некоторые тонкости составления УГВ "модуля, может потребоваться (пере)компиляции."
Я разворачиваю приложение в GAE. У меня есть одна настройка проекта в Eclipse, с тремя отдельными модулями GWT, каждый со своей собственной HTML-страницей, точкой входа и т. д. У них много общего кода.
Когда я развертываю приложение в appengine, два модуля работают нормально. Я могу получить доступ к их HTML-страницам отлично. Третий дает мне ошибку, что "модуль gwt 'xyz', возможно, должен быть (повторно)скомпилирован."Я дважды пытался перекомпилировать и повторно использовать, но безрезультатно, и у меня нет идей о перемещении вперед.
Другие темы, связанные с этой проблемой, указывают на gwt.аргумент codeserver, и действительно, если я добавлю этот аргумент, плохой модуль запускается... но он, кажется, работает в режиме dev! Если это правда, я немного ошарашен, так как я не хочу никому подавать код режима dev.
Любые предложения будут приветствоваться - моя работа в основном полностью застопорилась по этому вопросу.
4 ответа:
Я нашел свой собственный ответ: в моем случае ошибка не была вызвана отсутствием gwt.аргумент codesvr (как и во всех других случаях, на которые я нашел ссылку в интернете). Вместо этого атрибут переименования модуля я добавил в свое определение модуля gwt.xml файл вызвал путаницу. Я расскажу вам всю историю, если это поможет другим понять больше.
Это не повлияло на меня в течение нескольких дней, так как я думаю, что eclipse достаточно умна, чтобы перекомпилировать оба файла или что-то в этом роде. Кто знает. Я подозреваю, что gwt.аргумент codesvr был на самом деле включение этого скрытого поведения, загрузка кода из режима dev вместо JS-файла.
- я создал новый модуль и новую HTML-страницу.
- модуль назывался com.очень долго.и.громоздкий , и мой HTML-страница вытянута в javascript из com.очень долго.и.громоздкий / ком.очень долго.и.громоздкий.nocache.js .
- позже я поумнел и использовал атрибут rename-to для переименования кОм.очень долго.и.громоздкий на "короткий", не меняющий Мой HTML-код. Я и забыл.
В конечном счете, исправление было простым: я изменил свой HTML-файл так, чтобы js извлекался из short/short.nocache.js . И это сработало! Ура!
Добавление этих строк в XXX. gwt.xml-файл работал для меня: (GWT версия 2.5.1)
<add-linker name="xsiframe" /> <set-configuration-property name="devModeRedirectEnabled" value="true" /> <set-property name="compiler.useSourceMaps" value="true" />
Вот код, который выдает это сообщение.
function B() { var b = false; try { var c = Window.location.search; return (c.indexOf("gwt.hosted=") != -1 || (c.indexOf("gwt.codesvr=") != -1 || Window.external && Window.external.gwtOnLoad)) && c.indexOf("gwt.hybrid") == -1 } catch (a) {} B = function () { return b }; return b } // and later, if B() returns false, show recompile error if (!B()) { try { alert(Pb); return; } ... }
Таким образом, чтобы предотвратить сообщение компилятора
- нет ГВт.гибрид в URL
- и не имеют ГВт.hosted=
- или получить.codesvr=
- или окно.внешний.getOnLoad метод
Как говорится, когда у меня нет этой проблемы, этот код не компилируется в *.nocache.файл js, так вот где лежит настоящий bugaboo.