如何将GWT DevMode的自定义子类迁移到GWT 2.7.0超级开发模式

时间:2015-05-07 04:13:10

标签: gwt google-plugin-eclipse gwt-super-dev-mode gwt-2.7

很长一段时间我们使用com.google.gwt.core.ext.ServletContainerLauncher和com.google.gwt.dev.DevMode的自定义子类在Eclipse中运行基于GWT的应用程序。

这是为了让我们运行我们的自定义(最新)Jetty,随着时间的推移,它给了我们一些其他的控制,即在Eclipse中启动服务器的方式略有不同,以便允许文件在Eclipse项目中传播他们最终生产的地方。

这些有效取代/重新实现/覆盖JettyLauncher.javaDevMode.java

的位

现在我正在尝试升级到GWT 2.7,这不再适用。具体来说,它始于:

Started code server on port 9997
Loading modules
   com.<...>.ClientDev
      Public resources found in...
      Translatable source found in...
Starting HTTP on port 8008

我得到的只是臭名昭着的GWT模块&#34;客户端&#34;可能需要(重新)编译&#34;。我看到Eclipse启动配置现在提供了super dev模式和&#34; classic&#34;之间的选择。一。我还没有改变它(仍然在#34;经典&#34;)但我们的想法是我们需要转向超级开发模式(主要是因为速度和支持,但IDE中的经典功能和调试)将被遗漏。)

我试图找到有关更改内容(或需要在我的代码中进行更改)的文档,以达到2.7但到目前为止失败了。有人可以帮忙吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我没有找到任何文档,但我成功了。以下是我必须做的事情:

  1. 我实际上根本不需要更改我的启动器/开发模式代码。
  2. 必须修改Eclipse * .launch文件以添加-nosuperDevMode参数。由于自己的嵌入式容器与我的新版本之间存在冲突,我无法让super dev模式在其中工作,我不想花时间解决这个问题。
  3. 使用以下参数创建一种独立启动com.google.gwt.dev.codeserver.CodeServer的新方法:-bindAddress [same-address-as-the-main-one] -port 9876 -launcherDir [war-folder-path] [GWT-module-name]
  4. 清除所有Cookie。 CodeServer有缓冲区溢出(http错误413),因为我有太多的cookie。
  5. 直接访问CodeServer URL,将两个bookmarklet(开发模式开,开发模式关闭)添加到浏览器。
  6. 我预先编译了我的应用程序,只是为了确保我有结构,但我认为这不是必需的。
  7. 首先启动我的服务器。
  8. 再次启动代码服务器。
  9. 使用小书签打开开发模式。
  10. 访问我的应用。