【问题标题】:GWT SuperDevMode overwrites production code when using launcherdir使用 launcherdir 时 GWT SuperDevMode 会覆盖生产代码
【发布时间】:2016-05-11 21:41:09
【问题描述】:

我正在尝试使用带有 -launcherdir 参数的新 SuperDevMode,目前我将 launcherdir 指向与部署生产代码的文件夹相同的文件夹。

效果是 .nocache.js 文件被 SuperDevMode 的 nocache.js 文件覆盖,如果不重新编译,就无法在生产模式(托管模式)下运行应用程序。

有没有办法在 SuperDevMode 和生产模式之间来回切换?

谢谢!

【问题讨论】:

  • 我认为这是正常行为。当我需要生产模式战争时,我也会进行完整的重新编译。
  • @Knarf - 感谢您的回答,对我来说,感觉必须有一种快速切换的方法。在正常的 DevMode 中,这可以通过不提供代码来实现。再用谷歌搜索一下,这已经在其他地方讨论过了,似乎可以将 DevMode 与 -nosuperdevmode 参数一起使用,但它仅适用于 GWT2.7。对 GWT 2.8 有什么想法吗?
  • 目前我正在考虑有一个 ant 任务,在启动 CodeServer 之前,会备份 *.nocache.js 文件。然后另一个 ant 任务将恢复备份的文件。有更好的想法吗?
  • 我使用 SuperDevMode,因为我发现它有更多好处(主要是速度和兼容性)。我只是使用 ant 文件并进行完整的重新编译。由于我不使用 GWT 提供的 I18N 系统,但我自己的系统只有 6 个排列,因此编译相当快(4 分钟)。我也不经常做完整的编译,每个月只有几个。我认为不再需要进行大量编译,因为 DevModeProductionMode 的差异,您必须进行更多测试。在 SuperDevMode 中,这不是什么大问题。
  • 感谢 Knarf - 顺便说一句,SuperDevMode 的体验与旧的 DevMode 相比如何?是不是快了很多,你看到有很大的不同吗?您是否因为其他原因进行了转换?让它为一个大型项目运行它在速度方面似乎与 DevMode 非常相似,如果值得切换,不确定如何正确评估它。

标签: gwt gwt-super-dev-mode


【解决方案1】:

这确实是 SDM 的工作原理;解决方案是为生产和开发模式使用不同的输出文件夹,但这完全取决于您的构建工具等。

例如,您可以将 Web 应用程序组装在一个不同的文件夹中,这样您就可以使用 DevMode 运行它。
或者,您可以使用您配置的单独服务器(甚至可能是反向代理)来加载 CodeServer 生成的 nocache.js,其优先级高于来自您组装的 web 应用程序的生产服务器。这就是我在 Maven 中使用 Tomcat 或 Jetty 插件所做的事情。

【讨论】:

  • 或者只复制完整编译中的 nocache.js 和 codeserver 编译中的 nocache.js 并复制回您要运行的那个,无需重新启动服务器
猜你喜欢
  • 2015-06-07
  • 1970-01-01
  • 1970-01-01
  • 2018-12-01
  • 2012-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多