2016-04-22 4 views
0

Я успешно эмулировал некоторые исходные файлы, используя функцию <super-source> (GWT 2.7).Захват в GWT перед компиляцией, чтобы добавить дополнительные источники

Но я получаю ошибки «неправильного имени пакета» в Eclipse.

Компилятор GWT требует, чтобы файлы Java имели исходное имя пакета, но Eclipse нуждается в их имени пакета, которое соответствует их месту в исходной папке.

Есть ли способ программно подключиться к компилятору GWT до того, как он скомпилирует и добавит эмулированные исходные файлы? Я так думаю, что могу настроить объявление пакета с помощью replaceAll() перед тем, как компилятор GWT посмотрит на них.

Как временный рабочий стол, я выполняю отдельный шаг перед компиляцией, который делает этот трюк. Он работает, но было бы лучше иметь его как часть реального процесса компиляции, так что обновление страницы в режиме Super Dev автоматически выполнит этот процесс.

Я смотрел генераторы, но я не вижу никакого способа сделать это с ними.

Другая идея, которую я рассмотрел, составляет часть копирования компиляции Eclipse. Каждый раз, когда я сохраняю один из эмулируемых классов, он может копировать источник и переупаковывать его. Но я нахожусь в Windows и устанавливаю, что это немного фафф, и это не часть обычной компиляции, поэтому мне пришлось бы реплицировать эти действия в моем скрипте сборки.

ответ

1

Eclipse жалуется, потому что хочет скомпилировать их, чего не следует делать. Вы должны исключить супер-источники из Eclipse, поэтому они видят их только как ресурсы/текстовые файлы. Если вам действительно нужны функции Eclipse при редактировании этих файлов, вы можете добавить свой «super» (или, тем не менее, его называемый) «пакет» в качестве исходной папки, а Eclipse больше не будет жаловаться на несоответствие имен пакетов (но может иметь проблемы с дублирующими классами между исходным и одним из супер-источников, а также Eclipse будет их компилировать, и если они попадут в ваш путь к классам во время выполнения/DevMode, это может привести к сбою: ваше приложение использует супер-источники вместо исходных классов в JVM)

TL; DR: проблема Eclipse, а не GWT.

+0

Спасибо Томас. Я хочу иметь обе версии в одном проекте и использовать редактор Eclipse Java на обоих. К сожалению, ни одно из этих предложений не позволит. Было бы здорово, если бы GWT не заботился о том, чтобы объявление пакета соответствовало точно - если бы он мог перевести супер-префиксный пакет в истинное имя пакета. Мой подход делает это, и он работает, но немного неуклюжий. Я предполагаю, что нет возможности подключиться к компилятору, о котором вы знаете? –

Смежные вопросы