如何在IntelliJ中使用GWT Super Dev Mode

17

我在与IntelliJ结合使用Super Dev模式时遇到了很多问题。以下是我记录如何解决这些问题的答案,以供今后可能遇到此类问题的其他人参考(也为了我的自己方便):

3个回答

9

1)将以下行放入模块的.gwt.xml代码中:

<!-- Super Dev Mode Config: -->
  <add-linker name="xsiframe" />
  <set-configuration-property name="devModeRedirectEnabled" value="true" />
  <set-configuration-property name="gwt.superdevmode" value="on" />
  <set-property name="compiler.useSourceMaps" value="true"/>

2) 在IntelliJ中创建两个GWT运行配置,一个开启Super Dev模式,另一个关闭。

第一个配置(代码服务器): enter image description here

第二个配置(Dev模式):

enter image description here

3) 运行CodeServer运行配置,将会输出如下结果:

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

请访问该URL。页面上会有一个“Dev mode on”的按钮,请将其拖到书签栏中。然后,点击本页模块的名称,浏览其源代码以找到 .nocache.js 文件。
4) 在主机页面的html中,将现有 nocache.js 文件的路径更改为指向步骤3中复制的 nocache.js 文件的路径。例如:
<script type="text/javascript" language="javascript" src="http://localhost:9876/Touch/Touch.nocache.js"></script>

5) 现在运行第二个运行配置。它会转到GWT开发模式网址,其中包含?gwt=等url参数。删除那些url参数,然后刷新页面。现在您应该能够看到主机页面。如果代码服务器运行配置已经在运行,则GWT代码可能会自动运行。

6) 当项目进行任何更改时,只需单击早期添加的“Dev mode on”书签工具。它将提供模块的名称和编译按钮。单击编译按钮,它将重新编译模块(这是相当快的),并刷新页面。

7) 编译按钮也可以拖动到书签栏中,以跳过单击“Dev mode on”书签的步骤。

编辑:这个答案不完整并且有一些问题。如果有人想要纠正它,请编辑它。如果任何审核员看到此答案的编辑,请批准它们。


4

谢谢!干得好。顺便问一下,你能不能修复一下Intellij中的一些序列化警告?例如,如果我有一个实现Serializable接口的类在共享包中,并且我有一个private static final Logger成员,那么我会在Intellij中收到一个警告,提示我使用了一个GWT不支持序列化的成员,尽管java.util.Logging是被GWT支持的。 - Ali
另外,如果我有一个 @UiField Element foo,并且在我的 UiBinder 类中我做了 <i ui:field="foo" />,那么在 IntelliJ 中会给我一个错误提示:expected: Element, found: java.lang.Object(意思是期望类型为 Element,但实际上找到的是 java.lang.Object)。 - Ali

4

@Click Upvote的答案是不正确的。你不需要替换宿主HTML页面中脚本标签的src属性。否则,你会发现每个GWT RPC请求都会发送到端口9876(代码服务器运行的端口),而不是Web服务器端口(例如8080)。

这里有一篇文章讨论了这个问题here

顺便说一句,我正在使用GWT 2.6.1和Intellij 13.0.1。


1
没错,我一直想更新我的答案,但一直没有时间。如果你想编辑我的答案使其正确,我可以给你一个赏金,这将给你100声望并让你编辑答案。如果你需要的话,请告诉我。 - Ali
2
很抱歉您的编辑被拒绝了,可能是由于从未使用过GWT的人所致。我已经请求管理员审查并希望能够批准它。 - Ali

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接