GWT中的超级开发模式

时间:2013-08-20 08:09:28

标签: gwt eclipse-plugin gwt-rpc gwt2 gwt-super-dev-mode

我是gwt的新手。我不知道如何启动超级开发模式。我需要一步一步详细说明。

我尝试通过添加

来编辑gwt.xml文件
<add-linker name="xsiframe"/>
  <set-configuration-property name="devModeRedirectEnabled" value="true"/>
  <set-property name="compiler.useSourceMaps" value="true" />

但我无法理解这一点。

5 个答案:

答案 0 :(得分:60)

更新:从GWT 2.7开始,默认情况下DevMode会自动使用超级开发模式,所以你必须像以前一样启动DevMode,应用程序将自动(重新)编译在页面上(重新)加载。
一个区别是生成了一个特殊的.nocache.js,因此您必须确保浏览器加载此特定文件;要调试远程服务器(就像之前使用-noserver运行的DevMode一样),你必须使用如下所述的书签。

要在超级开发模式下运行,您必须完成两个准备步骤:

  1. 超级开发模式仅适用于xsiframe链接器,因此请确保.gwt.xml中也包含以下行:

    <add-linker name="xsiframe" />
    

    该链接器可以安全地用于生产(Google在任何地方都使用它,稍微定制),因此可以随意为所有项目打开它(它结合了std链接器中最好的 - 默认的 - 和 - xs链接器,没有它们的缺点。)

    注意:该链接器将是2.7

    中的默认值

    如果您在2.6.0之前使用GWT版本,则还需要在.gwt.xml中启用超级开发模式:

    <set-configuration-property name="devModeRedirectEnabled" value="true" />
    

    否则,如果您打算使用不同于127.0.0.1localhost的网址的超级开发模式,则您必须将主机列入白名单。这是使用正则表达式完成的,例如:

    <set-configuration-property name="devModeUrlWhitelistRegexp" value="http://(mymachinename|192\.168\.5\.151)(:\d+)?/.*" />
    

    请参阅https://stackoverflow.com/a/21938574/116472

  2. 将您的应用程序编译并部署到您附近的Web服务器(如果您使用了特定于Super Dev Mode的.gwt.xml文件,请确保编译该模块:xsiframe链接器和编译步骤需要devModeRedirectEnabled属性!)

    如果您使用GWT-RPC,请将系统属性gwt.codeserver.port设置为您将运行超级开发模式的端口(默认为9876),以便您的服务器可以直接下载RPC序列化策略超级模式。
    如果您在不同的计算机上运行它们,则必须覆盖所有getCodeServerPolicyUrl中的RemoteServiceServlet。如上所述in the javadoc

  3. ,请考虑安全隐患

    完成后,您可以开始超级模式会话:

    1. 使用与您启动DevMode相同的类路径启动com.google.gwt.dev.codeserver.CodeServer(即gwt-user.jargwt-dev.jar以及所有客户端依赖项:例如GXT,GIN + Guice ,GWTEventBinder等)但添加gwt-codeserver.jar;并将模块的名称作为参数传递。

      首先编译模块以检查它是否可以实际编译;您可以通过传递-noprecompile作为参数来跳过此步骤。

      如果您从未运行超级开发模式,请转到http://localhost:9876并将开发模式开发模式关闭链接添加到您的书签(拖放它们到你的书签栏。)

      注意:如果你使用Maven,你应该可以使用mvn gwt:run-codeserver(注意:插件版本中有一个错误,直到2.6.0,你实际上必须运行mvn process-classes gwt:run-codeserver;这已在2.6.1)中修复。

    2. 在浏览器中打开您的应用,然后点击开发模式书签。单击打开的弹出窗口中的编译按钮。它应刷新页面并从CodeServer而不是从您的服务器加载JS。您的浏览器开发工具也应加载SourceMaps,以便您可以查看和调试(逐步)Java代码。

    3. 如果要测试对代码所做的更改,请再次点击开发模式书签。与DevMode相反,刷新页面不会使其运行新代码;必须首先重新编译代码,这是在 Dev Mode On bookmarklet之后单击 Compile 按钮时完成的(注意:您也可以直接将编译加入书签按钮用于保存点击,但请注意它已绑定到您的模块,因此如果您处理多个模块,则需要多个书签。)

    4. 完成后,点击开发模式以确保切换回生产模式,然后关闭CodeServer进程(控制台中的 Ctrl C 应该有效。

    5. http://www.gwtproject.org/articles/superdevmode.html的官方文件 有关Super Dev Mode实际工作原理的更多信息,另请参阅http://blog.ltgt.net/how-does-gwts-super-dev-mode-work/

答案 1 :(得分:16)

按照以下步骤操作,您一定会找到解决方案。

  1. 下载GWT 2.5 RC2,把它放在某个地方......我把它放在我的eclipse / plugins目录中。 link

  2. 在Eclipse中,将GWT 2.5添加到Project -> Properties -> Google -> Web Toolkit -> Configure SDKs屏幕,然​​后选择已添加到上述步骤中的目录的2.5版本。

  3. 右键单击Eclipse中的项目,转到其Run Configurations窗口,然后创建一个新的&#34; Java Application&#34;,将其命名为&#34; GWT Super Dev Mode&#34;

  4. 在“运行配置”窗口中,执行以下操作:

    1. 根据项目名称设置项目,并在主要类中输入 com.google.gwt.dev.codeserver.CodeServer

    2. Classpath tab上,点击user Entries,然后点击Add External JARs,导航到GWT 2.5目录,找到 gwt-codeserver.jar ,然后点击&#34;打开&#34; (和其他外部图书馆)。

    3. 在Arguments选项卡中,将-src src/ *SOURCE PATH OF YOUR PROJECT*添加到Program参数,并将可选的-Xmx1024m添加到VM参数。

    4. 单击“应用”,然后继续运行项目。

  5. 在此之后,您将获得一个类似 localhost:9876 /

  6. 的网址
  7. 转到该网址,并添加书签,Dev Mode ONDev MOde Off然后运行您的代码,删除后缀 gwt.codesvr = 127.00.1:9997 URL。现在点击Dev Mode ON ...

  8. 希望你能得到解决方案......

答案 2 :(得分:7)

我用super-dev-mode Here为hello world项目调试编写了一个简单的分步指南。

通过截图阅读分步指南后,您不能错过它。

enter image description here

此外,您可以阅读该技术 -

GWT SuperDevMode - Ray Cromwell PostGWT Dev Guide

SourceMaps - GWT and SourcemapsHTML5 Sourcemaps

答案 3 :(得分:3)

答案 4 :(得分:-2)

现在非常容易。

Check this

然后将此jar添加到您的类路径

解释here