Как предотвратить перезапись аргументов командной строки конфигурации запуска для моего проекта GWT?
У меня есть многомодульный проект GWT, который я пытаюсь отладить с помощью SuperDevMode (или, может быть, новое имя - GWT Dev Mode с Jetty) в Eclipse.
Я использую:
- Марс.2 (версия 4.5.2)
- GWT 2.7 SDK (хотя также установлен 2.8.1)
- GWT Eclipse Plugin 3.0.0
- Интеграция Maven для Eclipse JDT 1.3.0
- gwt-maven-plugin версия 1.0-rc-8
В прошлом время от времени при запуске GWT Dev Mode запуск завершался неудачей со следующим сообщением:
Runing CodeServer with parameters: [-noprecompile, -port, 9876, -sourceLevel,
1.7, -bindAddress, 127.0.0.1, -launcherDir,
/Users/SomeUser/Documents/customers/SomeCustomer/dev/workspace/FolderName/target/NAME-0.0.1-SNAPSHOT,
-logLevel, INFO, ca.example.Name, .module]
Invalid module name: '.module'
Google Web Toolkit 2.7.0
(Да, он говорит "бег", а не "бег", я просто заметил это). Обратите внимание, что я изменил некоторые пути и имена классов, но эти изменения не должны быть значительными.
Я решил эту проблему, отредактировав конфигурацию запуска. Оказывается, в конец был добавлен дополнительный аргумент командной строки, ".module". Когда я уберу этот аргумент, я смогу отладить.
Но этот аргумент продолжает возвращаться. В последнее время он возвращается каждый раз, когда я пытаюсь отладить приложение, используя Run As -> GWT Dev Mode с Jetty.
Я попытался использовать цель gwt:devmode maven, и до сих пор она работает нормально.
Я также попытался сохранить локальную копию конфигурации запуска. Сохраненная конфигурация выглядит нормально, но когда я пытаюсь ее запустить, ".module" добавляется до начала сеанса отладки, и я получаю ту же ошибку.
Я думаю, я мог бы просто начать использовать gwt: devmode для запуска моих сеансов отладки, но среда отладки немного отличается, поэтому я хотел бы иметь возможность продолжать использовать GWT Dev Mode с Jetty.
Кто-нибудь сталкивался с этой фантомной вставкой ".module" и выяснил, как заставить Eclipse прекратить это делать?
2 ответа
Быстрое исправление: в eclipse вы можете сохранить конфигурацию запуска в виде XML-файла и зафиксировать ее в своем репозитории, чтобы у всех разработчиков была правильная конфигурация.
Пахнет, как будто есть какая-то папка или файл, который обманывает Eclipse, думая, что это модуль.gwt.xml, и добавляет его в список доступных модулей.
Это серьезный ответ, который до сих пор решает проблему в большинстве случаев. Я подозреваю, что правильный ответ заключается в том, что структура нашего проекта немного шаткая. По мере того, как мы узнаем больше о GWT и стандартном способе настройки maven проектов, мы, вероятно, найдем правильный ответ или реструктурируем наши проекты, чтобы у нас больше не было этой проблемы.
Тем не менее, проблема, похоже, исчезнет, когда мы снова добавим файл определения модуля.
Я имею в виду...
Основываясь на некотором случайном поиске в Google, когда мы конвертируем проект GWT в maven, мы перемещаем файл определения модуля из
packagename/modulename.gwt.xml
в
src/main/module.gwt.xml
,
Это может вызвать вышеуказанные проблемы.
Для решения проблемы я скопировал
src/main/module.gwt.xml
вернуться к
packagename/modulename.gwt.xml
и проблема исчезает, за исключением, иногда, самого первого раза, когда мы пытаемся запустить проект в "режиме разработки GWT с Jetty". И да, я знаю, что теперь у нас есть две копии файла, и это кажется неправильным.
Я не знаю, почему это происходит, и подумал, что определение модуля должно быть в src/main/module.gwt.xml. Но это работает, поэтому я могу жить с этим сейчас.