斯卡拉控制台 – 代码更改不反映在控制台

我使用scala sbt控制台来testing我的方法。 (命令: sbt然后控制台 )但在eclipse或其他外部编辑器中完成的代码更改,并没有得到反映在sbt控制台。

每一次,我必须退出控制台(使用Crt + D),并再次使用控制台命令启动它来查看更改。

任何一个面临这个问题? 有什么办法从控制台重新加载代码?

我正在使用Ubuntu 64位,

不是没有使用像JRebel这样的东西,主要是因为类定义可能会破坏,使得已经加载的实例无法使用。 我唯一的build议是使用〜console来运行控制台,这样如果进行了更改,它们将被重新编译并重新input控制台。

另外,如果您经常运行一组命令,则initialCommands sbt设置会将命令configuration为在启动控制台后立即运行。

一个select是使用:restart在控制台:restart – 这将重新加载它,并重播所有你input的命令。

为了获得更好的解决scheme,您可能需要阅读我的关于JRebel和Scala渐进式开发的博客文章 。

你应该像这样修改sbt启动脚本:

 #!/bin/bash java -noverify -javaagent:/home/username/path/to/jrebel/jrebel/jrebel.jar -Drebel.lift_plugin=true -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=512m -Xmx512M -Xss2M -jar `dirname $0`/sbt-launch.jar "$@" 

从SBT内部启动REPL时,例如使用以下命令:

 sbt console 

对导入的类的更改将自动反映,而不需要执行以下操作:replayrestart REPL – 让人想起交互式Lisp编程。