我维护的 GWT 项目可以追溯到 2009 年的黄金 GWT 时代。与此同时,发生了很多事情,我们希望尽可能地更新项目(目前是 Java8,GWT 2.8.2)。
与我的依赖配置作斗争,我设法使用 Java 11(和语言级别 11)和 Tomcat 9 设置打包和运行的东西。我们使用(据我了解已弃用)gwt-maven-plugin(2.9.0)运行编译阶段无错误 - 我的最终输出是一个战争文件,所有内容都按预期到位。
但是当谈到开发,因此运行超级开发模式时,真正的痛苦开始了。IntelliJ 集成将不再启动 SuperDev 目标。插件的 gwt:run 目标相同。
该插件引用了 jetty 9.2.14.v20151106 jars(通过 gwt-dev/gwt),它们不适用于 Java 9+。所以我排除了这些并用更新的版本(9.4.29.v20200521、9.4.30.v20200611)替换了这些罐子——更进一步。
为了解决 Java 9 游戏,我创建了一个 module-info.java 来指出我所有的引用,并解决了那里的冲突 - 另一个步骤。
但现在我到达了一个障碍点:
超级开发模式开始说明:
00:00:09,427 [ERROR] Found resouce but unrecognized URL format: 'jrt:/java.scripting/javax/script/ScriptEngineManager.class'
(虽然我引用了 java.scripting 模块)
我的主机页面显示 HTTP 503
从那里,我看不到其他线索(错误输出或堆栈跟踪)。
到目前为止,在这个问题上花了三天时间之后,我的挫败感开始上升......我就在翻转桌子之前。
有人在一个合理的实际项目(JPA、Spring、...)中成功地使用 GWT 2.9.0 启动了 GWT 超级开发模式吗?
如果您遇到类似的障碍,很乐意分享我的发现。
最好的,丹
ps:我尝试了net.ltgt.gwt.maven gwt-maven-plugin 没有成功,但这可能是其他配置缺陷。
pp.s.:在 Java 8 环境中,我可以使用 GWT 2.9.0,它是超级开发模式(通过 IntelliJ 和 gwt-maven-plugin)。