Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JRebel不断地使用GWT重新加载每个客户端类文件_Gwt_Intellij Idea_Jrebel - Fatal编程技术网

JRebel不断地使用GWT重新加载每个客户端类文件

JRebel不断地使用GWT重新加载每个客户端类文件,gwt,intellij-idea,jrebel,Gwt,Intellij Idea,Jrebel,我们正在考虑从Eclipse切换到IntelliJ IDEA。我们必须使用JRebel,这样就不必每次更改一行代码时都重新启动应用程序 每次我更改一个.java文件中的一行代码,并且在对该特定文件调用IntelliJ make进程之后,JRebel似乎都会重新加载一大堆客户端类 在Eclipse中,这种野蛮的重新加载行为有时可能会发生,但在大多数情况下,类的重新加载过程要快得多 我想我错过了什么有使用IntelliJ和JRebel经验的人知道如何让JRebel插件在不需要更多东西的情况下重新加载

我们正在考虑从Eclipse切换到IntelliJ IDEA。我们必须使用JRebel,这样就不必每次更改一行代码时都重新启动应用程序

每次我更改一个.java文件中的一行代码,并且在对该特定文件调用IntelliJ make进程之后,JRebel似乎都会重新加载一大堆客户端类

在Eclipse中,这种野蛮的重新加载行为有时可能会发生,但在大多数情况下,类的重新加载过程要快得多

我想我错过了什么有使用IntelliJ和JRebel经验的人知道如何让JRebel插件在不需要更多东西的情况下重新加载一个类吗?

任何帮助都将不胜感激

  • 注1:我知道超级开发模式可能会有所帮助,但我希望 JRebel插件首先工作
  • 注2:VM arg
    -Drebel.check\u class\u hash=true
    也有帮助,但我不认为这个插件是要这样工作的

    • -Drebel.check\u class\u hash=true是针对这种情况引入的。但您实际上应该检查的是重新加载客户端类的原因。当类文件的时间戳更改时,JRebel会重新加载类,或者,如果设置了-Drebel.check_class_hash=true,它将在时间戳之外检查哈希

      所以首先要寻找的是,当你创建一个类时,其他类的时间戳,JRebel重新加载的时间戳,是否发生了变化?也许IntelliJ的GWT构建只是在编译时接触了太多的文件?或者,您可以只编译一个类,即您实际更改的类

      我的一个假设是,如果上述假设不成立,那么代码中的某个地方就有GWT.create正在更改,并且必须在make期间重新运行它,否则您所做的更改将不会传播。这只会由make过程触发,JRebel不会触发重新运行GWT.create。这只是一个假设,所以请不要100%认真对待


      您也可以尝试联系JRebel支持。

      只是好奇,JRebel与超级开发模式相比有什么优势?JRebel做了超级开发模式做不到的事情吗?嗨,JRebel家伙。我猜你想让我说我为什么爱JRebel,不是吗:)?我们正在编写具有复杂工作流的大型企业应用程序。JRebel允许我们重新加载部分工作流,甚至是我所在的部分,而无需重新加载应用程序。否则,这将迫使开发人员重新启动复杂的向导,即使在Selenium的帮助下,这也是一种痛苦。从用户的角度来看,JRebel以相同的方式处理客户端和服务器端代码。超级开发模式重新编译整个应用程序,JRebel更快,因为它只重新编译了几个文件(至少在Eclipse中是这样)。好吧,我的目标实际上是弄清楚,尽管有超级开发模式,我们是否愿意花时间为GWT添加特殊支持。如果超级开发模式适合人们,我们就不会花时间在GWT集成上——很简单。顺便说一句,JRebel会重新编译任何东西,它只使用编译器的结果(javac、ejc)并更新正在运行的应用程序中的类和资源。谢谢你的回答。我不知道为什么要重新加载这些类。我不熟悉创意制作流程。但我知道这是问题的核心。没有GWT.create调用。然而,一些资源是使用GIN注入的。当你说GWT.create必须重新运行时,你的意思是如果在我的代码中有一个GWT.create调用,那么所有以这种方式创建的类都必须重新加载吗?注射杜松子酒会导致同样的行为吗?无论如何,谢谢你的建议。如果你愿意在另一个论坛上回答,我会尝试联系JRebel支持。所以我去了JRebel支持。根据他们的说法,使用-Drebel.check_class_hash=true和IntelliJ是正确的行为@安东:谢谢你的反馈。