【发布时间】:2014-05-24 04:23:36
【问题描述】:
让 Super Dev 模式与 IntelliJ 一起工作时遇到了很多问题。这个问题以及我在下面的回答是记录如何做到这一点,以供将来可能遇到此问题的任何其他人使用(并供我自己参考):
【问题讨论】:
标签: java gwt intellij-idea gwt-super-dev-mode
让 Super Dev 模式与 IntelliJ 一起工作时遇到了很多问题。这个问题以及我在下面的回答是记录如何做到这一点,以供将来可能遇到此问题的任何其他人使用(并供我自己参考):
【问题讨论】:
标签: java gwt intellij-idea gwt-super-dev-mode
IntelliJ IDEA 14 EAP 现在提供对 GWT 超级开发模式的改进支持。您将需要使用JetBrains IDE Plugin 在 Chrome 上进行 JavaScript 调试,并安装 GWT 2.6.1。然后,您可以直接在“运行配置”下启用超级开发模式支持 - 有关详细信息,请查看我们的 blog post 和 this webinar 进行快速演示。
【讨论】:
private static final Logger 成员,我会在 intellij 中收到关于使用 gwt 不可序列化的成员的警告,即使支持 java.util.Logging按重量计。
@UiField Element foo,并且在我的 UiBinder 类中我使用了<i ui:field="foo" />,这会在 intellij 中给我一个错误 expected: Element, found: java.lang.Object(释义)。
@Click Upvote 的回答不对。您不必替换主机 html 页面是 script 标签的 src 属性。或者你会发现每个 GWT RPC 请求都将发送到端口 9876(代码服务器在其上运行)而不是 Web 服务器端口(例如 8080)。
有一个帖子在讨论这个问题here。
顺便说一句,我使用的是 gwt 2.6.1 和 Intellij 13.0.1
【讨论】:
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 运行配置,一种开启超级开发模式,另一种关闭超级开发模式。
第一个配置(代码服务器):
第二个配置(开发模式):
3) 运行 CodeServer 运行配置。它将给出如下输出:
The code server is ready.
Next, visit: http://localhost:9876/
访问该网址。将有一个“开发模式开启”按钮。将其拖到书签栏。然后,在该页面点击模块名称,浏览其源代码,找到 .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 开发模式 url,带有 ?gwt= 等 url 参数。删除那些 url 参数,然后刷新页面。您现在应该能够看到主机页面。如果代码服务器运行配置已经在运行,那么 GWT 代码可能会自动运行。
6) 对项目进行任何更改时,只需单击之前添加的“Dev mode on”小书签。它将给出模块的名称和一个编译按钮。点击编译按钮,它会重新编译模块(发生得相当快),并刷新页面。
7) 编译按钮也可以拖到书签栏,跳过点击“Dev mode on”书签的步骤。
编辑:这个答案不完整并且有一些问题。如果有人想更正它,请编辑它。如果任何审阅者看到对此答案的修改,请批准他们。
【讨论】: