30

我是 gwt 的新手。我不知道如何启动Super Dev 模式。我需要一步一步的详细解释。

我尝试通过添加来编辑 gwt.xml 文件

<add-linker name="xsiframe"/>
  <set-configuration-property name="devModeRedirectEnabled" value="true"/>
  <set-property name="compiler.useSourceMaps" value="true" />

但我不明白这一点。

4

4 回答 4

61

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

要在超级开发模式下运行,您必须经过 2 个准备步骤:

  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.1or的 URL 使用超级开发模式localhost,那么您必须将主机列入白名单。这是使用正则表达式完成的,例如:

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

    https://stackoverflow.com/a/21938574/116472

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

    如果您使用 GWT-RPC,请将系统属性设置为gwt.codeserver.port您将在其上运行 Super Dev Mode 的端口(默认为9876),以便您的服务器可以直接从 Super Dev Mode 下载 RPC 序列化策略。
    如果你在不同的机器上运行它们,你必须getCodeServerPolicyUrl在你所有的RemoteServiceServlets. 但请考虑安全隐患,如javadoc 中所述

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

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

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

    如果您从未运行过 Super Dev Mode,请转到http://localhost:9876并将Dev Mode OnDev Mode Off链接添加到您的书签(将它们拖放到您的书签栏)。

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

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

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

  4. 完成后,点击Dev Mode Off以确保切换回生产模式,然后关闭CodeServer进程(CtrlC在控制台中应该可以工作)。

官方文档位于http://www.gwtproject.org/articles/superdevmode.html
另请参阅http://blog.ltgt.net/how-does-gwts-super-dev-mode-work/了解有关如何 Super开发模式确实有效。

于 2013-08-20T10:45:36.317 回答
16

按照这些步骤,您一定会找到解决方案。

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

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

  3. 右键单击 Eclipse 中的项目,转到其运行配置窗口,然后创建一个新的“Java 应用程序”,将其命名为“GWT Super Dev Mode”。

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

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

    2. 在 上Classpath tab,单击user Entries,然后单击Add External JARs,导航到 GWT 2.5 目录,找到gwt-codeserver.jar,然后单击“打开”(和其他外部库)。

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

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

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

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

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

于 2013-08-21T04:52:13.043 回答
7

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

阅读带有屏幕截图的分步指南后,您不会错过它。

在此处输入图像描述

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

GWT SuperDevMode - Ray Cromwell PostGWT 开发指南

SourceMaps - GWT 和 SourcemapsHTML5 Sourcemaps

于 2013-08-20T13:55:43.783 回答
4

看看这个视频,可能会有所帮助

http://jeff-davis.blogspot.fr/2012/07/setting-up-gwt-25s-superdevmode.html

于 2014-02-28T18:04:56.340 回答