【发布时间】:2015-10-07 08:27:41
【问题描述】:
这是简短的版本:
是否应该在它的依赖项中获取变化?
当我在 DEV 模式下更改/lib 目录中的 jar 文件时,播放重新编译,但更改未应用。
这里更详细:
我目前正在根据我们当前的应用程序设置一个新的播放应用程序。
我们已经有了一个现有的带有模块的项目结构,我把它放在了/lib 目录中。 到目前为止一切正常。
现在的问题与 DEV 模式下的工作流有关:
当我对其中一个模块进行更改时(将其替换为 /lib 目录中的 jar),播放重新编译 ([Info] Compiling ...),但未应用更改。
我也尝试添加一个 jar 作为托管依赖项 (libraryDependencies += "group" % "module" % "1.0" from "file:///path/to/jar"),但它的行为相同。
play/sbt 是否应该获取 jar 文件中的更改?
注意事项:
- 仅仅重启整个应用程序是不切实际的,因为初始化我们的东西(非播放)需要一些时间...
- 目前,我们正在使用 jrebel。我还不知道如何设置它(坦率地说,play 的重新加载能力和 jrebel 对我来说太多了;-))
【问题讨论】:
-
我得出的结论是,我的方法存在缺陷:重新加载依赖 jar 很可能会丢失任何静态字段上的所有状态(想想单例、数据库连接池,等等 - 你不知道)。所以这不是要走的路……所以我试着走 JRebel 路线,并认为我找到了一条路。如果有人感兴趣,我在这里放了一个回购:github.com/schoenberger/play-framework-java-jrebel
标签: playframework playframework-2.4