打叉跑有什么作用?

bha*_*ral 2 playframework

我正在使用播放框架,并且在热交换方面遇到问题(甚至无法及时启动sbt服务器)

有几个消息来源概述了该问题与play的fork运行有关,要解决该问题,应将其设置为false。

但是,玩分叉运动在做什么,关闭它的不利之处是什么?

顺便说一句,这里有一些参考:

解决方案概述了作为罪魁祸首的叉子

另一个解决方案,同样的事情

DP *_*ing 5

Play fork run是sbt的功能,其中JVM是派生的。派生JVM意味着JVM作为单独的JVM运行,并作为OS中的不同进程运行。

如果未分叉JVM,则可能是某些JVM范围的设置(例如系统属性)会影响播放实例。优点之一是,当分叉崩溃时,例如在多个分叉中运行多个测试时,其他分叉仍将继续运行。

在播放的情况下,JVM是分叉的,因此它不会与sbt运行在同一JVM进程中运行。请参阅以下内容(来自sbt文档):

默认情况下,运行任务与sbt在同一JVM中运行。但是,在某些情况下需要进行分叉。或者,您可能希望在实施新任务时派生Java进程。

这很有用,因为如果您的播放实例崩溃,例如,当system.exit被调用或发生未终止的线程时,sbt将继续运行。否则sbt也会崩溃。

参考:
拥有分叉的Java VM是什么意思?
适用于Scala的SBT入门