我经常需要在scala中运行一些耗时的实验,通常我会运行第二次sbt 同一个项目的实例,我对其他实例中运行的代码进行了更改并进行编译。 我这样做的原因是,在我的代码进展之前,我不必等待长时间运行的过程。
我的问题是:这样做是否安全,或者是否有可能重新编译sbt / scala中当前运行的代码的部分会导致我的运行过程出现问题?
到目前为止我所观察到的是大部分时间都没问题,但是在运行时重构我的代码时,我确实碰到了一个没有定义错误的类。
答案 0 :(得分:4)
正如@marcus所提到的,编写一个尚未被正在运行的JVM加载的.class文件的编译器有可能被加载而不匹配其他编译类。在许多情况下,你会很好,但它可能会导致问题。在这种情况下,您可以做一些事情:
re-start
命令在单独的JVM中运行程序,并在有更改时重新启动它。但是,这会中断您的测试。