我只想使用superDevMode运行一个简单的应用程序来了解它的好处。 CodeServer成功启动,但它抱怨在UI中没有要编译的gwt模块。我按照以下步骤操作。
然后我修改了我的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>
我添加了代码服务器jar并设置了正确的类路径。
Codeserver成功启动。
The code server is ready.
Next, visit: http://localhost:9876/
当我启动UI时,我得到以下内容
但是当我点击Dev Mode On时,我得到以下内容
我不知道我做错了什么。我的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>
如果我错了,请纠正我。
答案 0 :(得分:64)
更新:v2.6看起来它将为superdevmode提供更好的示例启动器(请参阅http://www.gwtproject.org/release-notes.html#Release_Notes_2_6_0_RC1下的superdevmode)2.6现在任何一天都会发布。我正在使用RC3,看起来很好。更多信息:
虽然我很欣赏 SuperDevMode如何在Thomas的文章中发挥作用的细节,但真正需要的是逐步指导并解决一些问题。
这是一步一步的。有很多地方出错,SuperDev mode page不是很具体。希望这说清楚:
</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
)
启动SuperDevMode服务器(有关两种方法,请参阅本答案的底部)。您现在有两个Web服务器在不同的端口上运行。所以,假设SuperDevMode正在localhost:1234
上运行。在这个答案的底部,我发布了一些启动SuperDevMode的方法。
将浏览器指向SuperDevMode服务器,http://localhost:1234
。按照说明将两个快捷方式复制到地址栏
现在,将浏览器指向常规网络服务器,http://localhost:8888/index.html
- 不要将?gwt.codesvr=127.0.0.1:9997
添加到网址 - 仅适用于NotSuper DevMode。 (即常规DevMode)
单击您在步骤5中复制的快捷方式链接“DevMode On”。它应该要求您选择要编译的模块,单击“编译”按钮。
如果您需要源图(请参阅Chrome脚本浏览器中的java源代码),则必须在Chrome中启用它。在我的Chrome版本(Ubuntu)中,Chrome控制台右下方有一个小齿轮(检查元素,然后查看浏览器窗口的右下角)。单击该按钮,然后找到“启用源映射”。重新加载页面,它现在应该显示源代码。
启动超级开发模式的两种方法:
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中,使用以下配置创建一个新的 Java Application 启动器(不 Web应用程序启动器!):
主要类别:
com.google.gwt.dev.codeserver.CodeServer
计划参数:
-src src -workDir ${workspace_loc:MyProject}/codeserver -port 1234 com.foo.MyModule
-workDir
是可选的
虚拟机参数(根据项目的大小,可能需要这些参数。如果超级模式“编译”按钮(在浏览器中)在您点击后立即消失,似乎没有任何事情发生,它可能会由于内存不足而崩溃了)
-Xmx1024m -Xms512m
Classpath:将gwt-codeserver.jar,gwt-dev.jar和gwt-user.jar添加到启动类路径中(这些jar可以在GWT SDK安装目录中找到)。
答案 1 :(得分:8)
我采取了略微不同的方法。我从现有的Hello project开始,然后将其配置为在超级开发模式下工作。
A。为hello项目构建并部署war到tomcat。
B。将目标添加到Hello项目的build.xml中。
<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开发工具(F12)并启用SourceMaps。
F。启动浏览器并导航至http://localhost:8080/Hello
G。当您在页面http://localhost:8080/Hello
H。点击“编译”按钮,指示代码服务器将gwt源代码作为源地图加载到浏览器。
我。 Hurray提取了java文件,可以在Chrome开发者控制台的来源标签中看到。
J。找到Hello.java。单击行号以设置调试点@ Window.alert("Hello, AJAX");
。
K。点击Hello World中的“Click Me”。代码在Chrome中的java文件的Debug点停止!!!!!!!!乌拉。
参考屏幕截图 - http://geekbybit.blogspot.in/2013/03/diy-working-with-gwt-codeserver-tomcat.html
答案 2 :(得分:4)
这里有一个非常好的解释: http://blog.ltgt.net/how-does-gwts-super-dev-mode-work/
您需要将小册子拖到浏览器中。然后像平常一样开始你的应用在没有“?gwt.codesvr = 127.0.0.1:9997”部分的浏览器中打开您的应用程序。现在您可以使用小册子启动SuperDevMode。
希望这有帮助。
答案 3 :(得分:0)
使用多模块maven gwt项目,您需要在运行配置中添加源位置(基础项目和模块):
-src src/main/java/ -src ${workspace_loc:MyNewModule}/src/main/java/ com.foo.MyModule