【问题标题】:GWT compile hangsGWT 编译挂起
【发布时间】:2020-06-09 18:57:45
【问题描述】:

我在Eclipse(Indigo,GWT 2.4,Linux Ubuntu)中创建了一个Google Web Toolkit项目,做了一些改动(主要是重命名了默认模块并添加了一个新模块),然后点击“GWT Compile”,然后什么也没发生- 汇编永远挂了。没有输出;右下角的进度条显示“0%”。

当我使用“loglevel=all”时,我得到一行输出“检查更新”,然后它挂起。

我尝试删除缓存 - 没有变化。

我尝试创建一个新项目并复制源文件 - 没有变化。

在此链接的帮助下:http://comments.gmane.org/gmane.org.google.gwt/70561 我在编译器中添加了“-XdisableUpdateCheck”;现在编译完成了,但是,当我尝试在开发模式下运行(“运行为 -> Web 应用程序”)时,它显示“开发模式正在加载...”并挂起。

我什至不知道如何开始调试它。请给我一些提示!

【问题讨论】:

  • 您是否将调试级别设置为 TRACE 或 DEBUG?
  • 是的,当我使用“loglevel=all”时,我得到一行输出“检查更新”,然后它挂起。
  • 编译操作是否可能被其他一些 Eclipse 操作(如检查更新)阻塞?
  • 我不这么认为;我关闭并重新打开Eclipse,并重试了很多次,总是得到相同的结果。

标签: gwt


【解决方案1】:

我遇到了类似的问题。这是我的事件顺序: 从 SVN 检查 GWT 项目 --> 尝试使用 Google-GWT 编译 --> 提供入口点模块 --> 我的日志级别是信息和输出样式 Obfoscated --> 点击编译.. 除了进度条卡住之外什么都没有发生在 0%。 试图谷歌并以多种方式找出解决方案,但无法得到正确的答案。 一个技巧奏效了——>我从 Eclipse 工作区中删除了该项目,并将其作为现有项目从磁盘重新导入。 GWT 编译这次成功了。 :)

为什么有效? --> 当我们从 Eclipse 工作区中删除项目时,与该项目关联的所有库都将解除绑定并从类路径中删除。当您再次导入同一个项目并尝试在将所需的库添加到类路径之前编译 GWT 时,它将起作用。真正的冲突在于 GWT 库和 JBoss 5.0 库。 GWT2.4 中似乎有一些他们需要解决的普通错误。在类路径中,如果您在 GWT 库之前的 jboss 和 Web 应用程序库之前编译会卡住。

如果您遇到类似问题,请从类路径中删除 jboss 和 Web 应用程序库并编译 GWT 模块,然后添加这些已删除的库,以便编译项目中的 JAva 源代码。祝你好运!

【讨论】:

    【解决方案2】:

    完成本教程后我遇到了同样的问题:http://www.javacodegeeks.com/2010/12/securing-gwt-apps-with-spring-security.html

    最后,它是我添加到构建路径中的一个不可靠的外部 JAR(教程中提到的 spring-context )。我又拿了一份,现在一切都很好。

    【讨论】:

    • 谢谢,但是,这可能不是我的问题,因为我的项目中没有外部 jar。
    • 当我面临类似问题时,您能再谈谈这个狡猾的 JAR 吗?
    【解决方案3】:

    这里是这个问题的修复,因为我们无法继续在每次需要编译 GWT 时将 jBoss 库进出的整个业务。 问题是com.google.gwt.dev.javac.JdtCompiler.getCompilerOptions (JdtCompiler.java) 指的是CompilerOptions,正如命运所愿,它指的是jasper-jdt.jar 中的实现(位于jboss 库中)而不是gwt 特定的实现。从 jBoss 库中获取这个jasper-jdt.jar,你应该已经准备好了。如果您绝对需要来自jasper-jdt.jar 的任何课程,请不要担心;除了这个之外,还有很多可供选择的 Jasper 罐子可以满足您的需求。

    【讨论】:

      【解决方案4】:

      试试这个:右键单击->google->gwt compile->单击高级(底部)和 在附加编译器参数中添加:

      -XdisableUpdateCheck

      【讨论】:

        【解决方案5】:

        为 GWT 编译器提供选项 -XdisableUpdateCheck 为我解决了死锁问题。感谢您的提示。

        使用 GWT 2.5.0 和 java :

        $ java -version
        java version "1.6.0_35"
        Java(TM) SE Runtime Environment (build 1.6.0_35-b10)
        Java HotSpot(TM) 64-Bit Server VM (build 20.10-b01, mixed mode)
        
        
        $ cat /etc/issue
        Fedora release 18 (Spherical Cow)
        Kernel \r on an \m (\l)
        
        
        $ uname -a
        Linux myhostname 3.9.4-200.fc18.x86_64 #1 SMP Fri May 24 20:10:49 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
        

        【讨论】:

          【解决方案6】:

          我可以通过设置优化级别来解决问题(控制台参数-optimize 8 为8,这意味着最多优化代码8次。默认为9级导致优化直到没有任何变化。似乎有几个导致无限循环的情况。

          在 GitHub 上也可以看到这个问题:

          https://github.com/gwtproject/gwt/issues/9452#issuecomment-259088434

          【讨论】:

            【解决方案7】:

            老问题,但今天我的一位同事也遇到了这个问题。事实证明,他在项目的共享包中使用了客户端包中的类(包括自己的类和 ...client.rpc.IsSerializable)。 结果,GWT 构建在编译排列 0 时冻结。我假设它被困在编译共享类和客户端类之间的无限循环中。 从共享类中删除客户端类的所有用法有所帮助。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2013-09-04
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2018-07-04
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多