0

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

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

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

我认为我错过了一些东西。有没有使用 IntelliJ 和 JRebel 经验的人知道如何让 JRebel 插件在不需要更多内容时重新加载一个类?

任何帮助将不胜感激 !

  • 注意 1:我知道超级开发模式可能会有所帮助,但我想让 JRebel 插件先工作。
  • 注 2:VM arg-Drebel.check_class_hash=true也有帮助,但我不认为该插件应该以这种方式工作。
4

1 回答 1

0

-Drebel.check_class_hash=true 是针对这种情况引入的。但是您实际上应该检查的是为什么要重新加载客户端类。当类文件的时间戳改变时,JRebel 会重新加载类,或者,如果设置了 -Drebel.check_class_hash=true,它会在时间戳之外检查哈希。

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

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

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

于 2013-10-08T21:48:29.993 回答