【问题标题】:Compilation GWT with jdk17用 jdk17 编译 GWT
【发布时间】:2022-01-02 21:39:47
【问题描述】:

我正在尝试将 gwt 应用程序从 java 1.8 迁移到 17(java 源代码保留在 1.8 中)。

我使用的是 gwt-maven-plugin 版本 2.9.0。使用基于日志的 open JDK 17 编译看起来没问题,没有错误,与使用 JDK1.8 调试日志编译相比看起来相同。 所有文件(如 css、图片、js、rpc.log、gwt.log 等)均基于创建的日志。

但是当编译完成时,war中的模块目录仍然是空的,只有目录结构而没有文件(例如gwt.rpc、resources、cache.js、nocache.js...丢失)。

在日志中提到“排列编译成功....链接成功”。目录 gwt-unitCache 的内容看起来也不错。

你知道为什么会这样吗?

非常感谢!

部分日志:

Compiling 2 permutations
16:19:20 [Thread-95] [INFO]       Creating worker permutation 0 of 2
16:19:20 [Thread-95] [INFO]       Creating worker permutation 1 of 2
16:19:20 [Thread-95] [INFO]       Creating PermutationWorkerFactory instances
16:19:20 [Thread-95] [INFO]       Compiling permutation 0...
16:19:29 [Thread-95] [INFO]       Compiling permutation 1...
16:23:17 [Thread-95] [INFO]       Splitting JavaScript for incremental download
16:23:18 [Thread-95] [INFO]       Splitting JavaScript for incremental download
16:23:21 [Thread-95] [INFO]          Fixed up load-order dependencies for instance methods by moving 0 types to fragment 0, out of 31425
....
16:25:26 [Thread-95] [INFO]          Done
16:25:26 [Thread-95] [INFO]       Permutation took 365658 ms
16:25:27 [Thread-95] [INFO]          Done
16:25:27 [Thread-95] [INFO]       Permutation took 366193 ms
16:25:27 [Thread-95] [INFO]       Successfully compiled permutation
16:25:27 [Thread-95] [INFO]       Successfully compiled permutation
16:25:27 [Thread-95] [INFO]    Compile of permutations succeeded
16:25:27 [Thread-95] [INFO]    Compilation succeeded -- 2112.388s
16:25:27 [Thread-95] [INFO] Linking into D:\zzz\applications\xxx\target\xxx-1.0-SNAPSHOT\yyyyy

【问题讨论】:

    标签: gwt gwt-maven-plugin


    【解决方案1】:

    在您的编译输出中,您应该会看到 GWT 编译器存储 GWT 应用程序文件的目录。

    [INFO] --- gwt-maven-plugin:2.8.2:compile (default) @ Foo ---
    [INFO] Compiling module com.me.Foo
    [INFO] Linking into /home/.../Foo/target/Foo-1.2.1-SNAPSHOT/Foo
    [INFO]    Link succeeded
    

    如果那个目录是空的,那么很奇怪的事情正在发生;尝试删除目标目录,然后重新编译。

    【讨论】:

    • 目标总是在编译前被清理。还有消息“链接成功”,但模块目录中只创建了目录结构。在 windows 和 Jenkins (Linux) 上也会发生同样的情况。
    • 所以输出“[INFO] Linking into ....”中提到的目录没有文件?
    • 也许可以分享构建日志,pom 内容?听起来确实不像 GWT 或 maven 的 gwt 插件导致了这个......
    • 我尝试在 gwt-maven-plugin - 参数 中更改输出目录,使用不同的目录。看来直接写入模块目标目录(xxx\target\xxx-1.0-SNAPSHOT\ModuleName)有些问题
    【解决方案2】:

    只有一种可行的解决方法 -> 使用参数 webappDirectory 为插件 gwt-maven-plugin 设置不同的输出目录,例如d:\输出

    如果生成正确则输出。然后将内容复制回目标war目录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-22
      • 2012-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多