我在与IntelliJ结合使用Super Dev模式时遇到了很多问题。以下是我记录如何解决这些问题的答案,以供今后可能遇到此类问题的其他人参考(也为了我的自己方便):
我在与IntelliJ结合使用Super Dev模式时遇到了很多问题。以下是我记录如何解决这些问题的答案,以供今后可能遇到此类问题的其他人参考(也为了我的自己方便):
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模式,另一个关闭。
第一个配置(代码服务器):
第二个配置(Dev模式):
3) 运行CodeServer运行配置,将会输出如下结果:
The code server is ready.
Next, visit: http://localhost:9876/
<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”书签的步骤。
编辑:这个答案不完整并且有一些问题。如果有人想要纠正它,请编辑它。如果任何审核员看到此答案的编辑,请批准它们。
IntelliJ IDEA 14 EAP现在提供了更好的GWT Super Dev Mode支持。您需要使用JetBrains IDE Plugin在Chrome上进行JavaScript调试,并安装GWT 2.6.1。然后,您可以直接在“运行配置”下启用Super Dev Mode支持-有关更多信息,请查看我们的博客文章和此网络研讨会进行快速演示。
@Click Upvote的答案是不正确的。你不需要替换宿主HTML页面中脚本标签的src属性。否则,你会发现每个GWT RPC请求都会发送到端口9876(代码服务器运行的端口),而不是Web服务器端口(例如8080)。
这里有一篇文章讨论了这个问题here。
顺便说一句,我正在使用GWT 2.6.1和Intellij 13.0.1。
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