Я получаю новый JavaScript каждый компилятор GWT без изменения исходного кода Java - PullRequest
3 голосов
/ 11 мая 2009

GWT компилирует исходный код Java в Javascript и называет файлы в соответствии с хэшем их содержимого. Я получаю новый набор файлов при каждой компиляции, потому что содержимое javascript меняется, даже когда я вообще не меняю источник.

Файлы различаются для вывода OBF и PRETTY, но если я установлю его на DETAILED, они больше не будут отличаться при каждой компиляции. В PRETTY я вижу, что все / большинство различий между компиляциями заключаются в параметрах значения для typeId. Например, функция с именем initValues ​​() вызывается с другими значениями для своего параметра typeId.

Ответы [ 2 ]

2 голосов
/ 14 мая 2009

В режиме PRETTY вы видите различия в распределении Java-классов по TypeIds. Так GWT управляет проверкой типов во время выполнения. Вы увидите таблицу внизу каждого скрипта, по существу отображающую каждый typeId во все совместимые суперклассы. Вот как GWT все еще может генерировать ClassCastException в JavaScript (хотя вы должны сталкиваться с этим очень редко!).

В режиме OBF различия связаны с назначением минимизированных имен функций.

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

0 голосов
/ 12 мая 2009

Насколько я знаю, GWT будет компилировать новую версию каждый раз, когда вы ее компилируете, это особенность;)

Вы можете использовать ant для управления им, так что он создает раздел GWT вашего приложения, только если он действительно изменился:

http://wiki.shiftyjelly.com/index.php/GWT#Use_The_Power_of_Ant_to_Build_Changes_Only

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...