Начало работы с SuperDevMode
Я просто хочу запустить простое приложение, используя superDevMode, чтобы узнать его преимущества. CodeServer запускается успешно, но он жалуется, что в пользовательском интерфейсе нет модулей gwt. Я выполнил следующие шаги.
- Я начал с кода GWT Default, который будет создан при создании нового проекта. Затем я преобразовал его в проект Maven.
-
Затем я изменил свой файл gwt.xml, чтобы добавить компоновщик. Вот копия моего gwt.xml
<module rename-to='superdevmode'>
<inherits name='com.google.gwt.user.User' />
<inherits name='com.google.gwt.user.theme.clean.Clean' />
<entry-point class='superDevMode.client.SuperDevMode' />
<add-linker name="xsiframe" />
<set-configuration-property name="devModeRedirectEnabled"
value="true" />
</module>
-
Я добавил баннер codeerver и установил правильный путь к классам.
Codeserver успешно запускается.
The code server is ready.
Next, visit: http://localhost:9876/
Когда я запускаю пользовательский интерфейс, я получаю следующее
![enter image description here]()
Но когда я нажимаю на Dev Mode On, я получаю следующее
![enter image description here]()
Я не знаю, что я делаю неправильно. Моя запись POM выглядит так.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>superDevMode</groupId>
<artifactId>superDevMode</artifactId>
<version>0.0.1-SNAPSHOT</version>
</project>
Исправьте меня, если я ошибаюсь.
Ответы
Ответ 1
Обновление: v2.6 выглядит так, что у него будет лучшая программа запуска для супердева (см. под супердемодом в http://www.gwtproject.org/release-notes.html#Release_Notes_2_6_0_RC1) 2.6 будет выпущен в любой день. Я использую RC3, и это кажется прекрасным. Подробнее здесь:
Хотя я ценю детали о том, как работает SuperDevMode в статье Томаса, действительно необходимо пошаговое руководство по устранению проблем.
Вот шаг за шагом. Есть так много мест, чтобы пойти не так, и страница режима SuperDev не очень специфична. Надеюсь, это дает понять:
- Настройте файл .gwt.xml модуля с дополнительными строками (вы должны поместить это в нижней части своего определения модуля, т.е. непосредственно перед
</module>
):
<add-linker name="xsiframe"/>
<set-configuration-property name="devModeRedirectEnabled" value="true"/>
<!-- enable source maps -->
<set-property name="compiler.useSourceMaps" value="true" />
-
Запустите стандартный процесс компиляции GWT - в Eclipse это "GWT Compile Project..." - это то, что вы обычно делаете при развертывании кода GWT. Без сомнения, у вас есть команда maven или ant, которая также делает это.
-
Запустите обычный веб-сервер, который вы обычно используете при разработке кода GWT. Например, тот, с которым вы использовали обычный DevMode. Я буду называть это localhost: 8888 - я собираюсь предположить, что вы обычно запускаете index.html, поэтому http://localhost:8888/index.html
показывает ваше приложение GWT. (у вас, вероятно, есть ?gwt.codesvr=127.0.0.1:9997
в этом URL-адресе)
-
Запустите сервер SuperDevMode (см. нижнюю часть этого ответа для двух методов). Теперь у вас есть два веб-сервера - на разных портах. Итак, скажем, SuperDevMode работает на localhost:1234
. В нижней части этого ответа я опубликовал несколько способов запуска SuperDevMode.
-
Направьте свой браузер на сервер SuperDevMode, поэтому http://localhost:1234
. Следуйте инструкциям и скопируйте два ярлыка на адресную строку.
-
Теперь укажите ваш браузер на обычный веб-сервер, http://localhost:8888/index.html
- не добавить ?gwt.codesvr=127.0.0.1:9997
в URL-адрес, который предназначен только для NotSuper DevMode. (т.е. обычный DevMode)
-
Нажмите ссылку быстрого доступа "DevMode On", которую вы скопировали на шаге 5. Он должен попросить вас выбрать модуль для компиляции, нажмите кнопку "Скомпилировать".
-
Если вам нужны исходные коды (см. исходный код java в браузере Chrome script), вы должны включить его в Chrome. В моей версии Chrome (Ubuntu) в нижней правой части консоли Chrome есть небольшое устройство (Inspect Element, затем посмотрите в нижнем правом углу окна браузера). Нажмите это и найдите "Включить исходные карты". Перезагрузите страницу, и теперь она должна показать вам исходные коды.
Два способа запуска режима супер-dev:
В командной строке
java -classpath $GWT_HOME/gwt-codeserver.jar:$GWT_HOME/gwt-dev.jar:$GWT_HOME/gwt-user.jar:app:./lib/* com.google.gwt.dev.codeserver.CodeServer \
-bindAddress 0.0.0.0 -port 1234 -src src -workDir work com.foo.MyModule
Из Eclipse Laucher
В Eclipse создайте новую программу запуска приложений Java ( не для запуска веб-приложений!) со следующей конфигурацией:
Основной класс:
com.google.gwt.dev.codeserver.CodeServer
Аргументы программы:
-src src -workDir ${workspace_loc:MyProject}/codeserver -port 1234 com.foo.MyModule
-workDir
является необязательным
Аргументы виртуальной машины (это может потребоваться в зависимости от размера вашего проекта. Если кнопка суперкоммутатора "Скомпилировать" (в браузере) исчезает сразу же после нажатия и ничего не происходит, это может сбой из-за недостаточной памяти)
-Xmx1024m -Xms512m
Путь к классам: добавить gwt-codeserver.jar, gwt-dev.jar и gwt-user.jar в путь класса запуска (эти баны находятся в каталоге установки GWT SDK).
Ответ 2
Я использовал несколько иной подход. Я начал с существующего Hello project, а затем настроил его для работы в режиме Super Dev.
A. Построить и развернуть войну для проекта hello в tomcat.
B. Добавьте цель в проект build.xml Hello.
<target name="codeserver" depends="javac" description="Run Code Server mode">
<java failonerror="true" fork="true" classname="com.google.gwt.dev.codeserver.CodeServer">
<classpath>
<pathelement location="src"/>
<path refid="project.class.path"/>
<pathelement location="../../gwt-codeserver.jar" />
<pathelement location="../../validation-api-1.0.0.GA.jar" />
<pathelement location="../../validation-api-1.0.0.GA-sources.jar" />
</classpath>
<jvmarg value="-Xmx1024M"/>
<arg value="-bindAddress"/>
<arg value="0.0.0.0"/>
<arg line="-port"/>
<arg value="9876"/>
<arg value="-workDir"/>
<arg value="workDir"/>
<arg line="-src"/>
<arg value="src"/>
<arg value="com.google.gwt.sample.hello.Hello"/>
</java>
</target>
C. Запустите сервер кода с помощью ant codeserver
из командной строки.
D. Запустить браузер и перейти к http://localhost:9876/
Создать закладки
E. Запустите Chrome Dev Tools (F12) и включите SourceMaps.
F. Запустить браузер и перейти к http://localhost:8080/Hello
G. Нажмите на закладку "Dev Mode ON", когда вы находитесь на странице http://localhost:8080/Hello
H. Нажмите кнопку "Скомпилировать", чтобы указать серверу кода загрузить исходный код gwt в браузер в качестве исходных карт.
Я.. Убирайте java файлы и их можно увидеть на вкладке источника консоли разработки Chrome.
J. Найти Hello.java. Нажмите на номер строки, чтобы установить точку отладки @ Window.alert("Hello, AJAX");
.
K. Нажмите "Click Me" в Hello World. Код останавливается в вашей точке отладки в java файле в Chrome!!!!!!!! Hurray.
Ссылка со скриншотами - http://geekbybit.blogspot.in/2013/03/diy-working-with-gwt-codeserver-tomcat.html
![enter image description here]()
Ответ 3
есть действительно хорошее объяснение того, как это работает здесь:
http://blog.ltgt.net/how-does-gwts-super-dev-mode-work/
вам нужно перетащить буклеты в свой браузер. Затем запустите свое приложение, как обычно. Откройте приложение в браузере без части "? Gwt.codesvr = 127.0.0.1: 9997". Теперь вы можете использовать буклеты для запуска SuperDevMode.
Надеюсь, что это поможет.
Ответ 4
В многомодульном проекте maven gwt вам нужно добавить исходные местоположения (базовый проект и модуль) в Run Configuration:
-src src/main/java/ -src ${workspace_loc:MyNewModule}/src/main/java/ com.foo.MyModule