在我的Play 2应用程序中编辑scala文件时,有时只有几个文件被重新编译,但通常必须重新编译整个代码库:
[info] Compiling 1 Scala source to /home/michael/code/superglot/target/scala-2.10/classes...
[success] Compiled in 1s对比
[info] Compiling 2 Scala sources to /home/michael/code/superglot/target/scala-2.10/classes...
[info] Compiling 52 Scala sources and 1 Java source to /home/michael/code/superglot/target/scala-2.10/classes...
[success] Compiled in 13s但是,在需要完全重新编译的情况下,我看不到明显的模式。如果我在模型或控制器类中添加一些空格,它可能只会编译该文件,但是对类似的文件进行同样的操作将触发重新编译。
我希望有更多的重新加载接近1s,因为目前我正等待一个完整的重新编译的频率比没有。我很乐意重构我的代码,使我正在工作的区域更快地重新加载,但我不知道我能做些什么来实现这个目标。对于一个典型的Play 2应用程序来说,频繁的重新编译是正常的,还是我的程序有什么反常之处?
发布于 2013-05-11 11:50:05
我认为你在这方面采取了稍微错误的做法。由于无法成功地确定哪些更改将导致完全重新编译,因此该路径没有任何方向。
为了学习的目的,更好地了解编译器的内部结构也许是有帮助的,但是从生产力的角度来看,还有一个更好的选择,那就是jRebel,他多年来一直发放免费Scala许可证。
JRebel
从这里,您可以在几分钟内获得免费的Scala许可证。然后继续并将其添加到sbt配置中。它必须直接进入sbt文件。
Linux/Mac
java -noverify -javaagent:/opt/zt/jrebel/jrebel.jar \
-Xmx1024M -Xss2M -XX:MaxPermSize=512m -XX:+CMSClassUnloadingEnabled -jar \
`dirname $0`/sbt-launch-0.12.jar "$@"Windows
set SCRIPT_DIR=%~dp0
java -noverify -javaagent:c:/opt/zt/jrebel/jrebel.jar \
-XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256m -Xmx1024M -Xss2M \
-jar "%SCRIPT_DIR%\sbt-launch-0.12.jar" %*在这个阶段,如果您已经做好了一切,当您重新启动SBT控制台时,您将看到jRebel代理已经启动,您将从您的更改的实时重新部署中获益。当您在IDE中使用Save时,JRebel只会重新加载,只加载您所做的更改。
https://stackoverflow.com/questions/16490525
复制相似问题