gwt - showcase - vaadin




开始使用SuperDevMode (3)

更新 :v2.6看起来它将为superdevmode提供更好的示例启动器(请参阅http://www.gwtproject.org/release-notes.html#Release_Notes_2_6_0_RC1下的superdevmode)2.6将于任何一天发布。 我正在使用RC3,看起来很好。 更多信息:

虽然我很欣赏SuperDevMode在Thomas的文章中如何运作的细节,但真正需要的是逐步指导并解决一些问题。

这是一步一步的。 有很多地方出错, SuperDev模式页面不是很具体。 希望这说清楚:

  1. 使用附加行配置模块.gwt.xml文件(您应将其放在模块定义的底部,即</module>之前):
<add-linker name="xsiframe"/>
<set-configuration-property name="devModeRedirectEnabled" value="true"/>
<!-- enable source maps -->
<set-property name="compiler.useSourceMaps" value="true" />
  1. 运行标准GWT编译过程 - 在Eclipse中这是“GWT Compile Project ...” - 这是您在部署GWT代码时通常所做的事情。 毫无疑问,你有一个maven或ant命令也能做到这一点。

  2. 启动您在开发GWT代码时通常使用的常规Web服务器。 例如,您使用普通DevMode的那个。 我将这个称为localhost:8888 - 我将假设您通常启动的页面是index.html,因此http://localhost:8888/index.html显示您的GWT应用程序。 (你通常在那个URL中有?gwt.codesvr=127.0.0.1:9997

  3. 启动SuperDevMode服务器(有关两种方法,请参阅本答案的底部)。 您现在有两个Web服务器在不同的端口上运行。 所以,让我们说SuperDevMode在localhost:1234上运行。 在这个答案的底部,我发布了一些启动SuperDevMode的方法。

  4. 将浏览器指向SuperDevMode服务器, http://localhost:1234 。 按照说明将两个快捷方式复制到地址栏

  5. 现在,将浏览器指向常规Web服务器, http://localhost:8888/index.html - 不要?gwt.codesvr=127.0.0.1:9997添加到URL - 仅适用于NotSuper DevMode。 (即常规DevMode)

  6. 单击您在步骤5中复制的快捷方式链接“DevMode On”。它应该要求您选择要编译的模块,单击“编译”按钮。

  7. 如果您需要源图(请参阅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 Laucher

在Eclipse中,使用以下配置创建新的Java Application Launcher( 不是 Web应用程序启动程序!):

主类:

com.google.gwt.dev.codeserver.CodeServer

计划参数:

-src src -workDir ${workspace_loc:MyProject}/codeserver -port 1234 com.foo.MyModule

-workDir是可选的

VM参数 (可能需要这些参数取决于项目的大小。如果超级模式“编译”按钮(在浏览器中)在您单击后立即消失并且似乎没有发生任何事情,则可能由于内存不足而崩溃)

-Xmx1024m -Xms512m

类路径:将gwt-codeserver.jar,gwt-dev.jar和gwt-user.jar添加到启动类路径中(这些jar可以在GWT SDK安装目录中找到)。

我只是想使用superDevMode运行一个简单的应用程序来了解它的好处。 CodeServer成功启动,但它抱怨在UI中没有要编译的gwt模块。 我按照以下步骤操作。

  1. 我开始使用GWT默认代码,它将在创建新项目时生成。 然后我将其转换为Maven项目。
  2. 然后我修改了我的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>
    
  3. 我添加了代码服务器jar并设置了正确的类路径。

Codeserver正在成功启动。

   The code server is ready.
   Next, visit: http://localhost:9876/

当我启动UI时,我得到以下内容

但是,当我点击开发模式开启时,我得到以下内容

我不知道我做错了什么。 我的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>

如果我错了,请纠正我。


使用多模块maven gwt项目,您需要在运行配置中添加源位置(基础项目和模块):

-src src/main/java/ -src ${workspace_loc:MyNewModule}/src/main/java/ com.foo.MyModule