在多台(集群)计算机上同时运行SBT(Scala)

ade*_*rtc 2 scala sbt actor akka

所以我现在已经和Akka Actors一起玩了一段时间,并编写了一些可以在集群中的多台机器上分配计算的代码.之前我跑了"主"的代码,我需要有一个ActorSystem每一台机器,我会被部署在上等待,而我通常做这个通过Python脚本,SSH的到所有的机器,并开始通过执行类似的过程cd /into/the/proper/folder/,然后sbt 'run-main ActorSystemCode'.

我在其中一台机器上运行这个Python脚本(称之为"机器X"),因此我将在我的Machine X SSH会话中看到SSH输入到所有其他机器的输出.每当我运行脚本时,似乎所有的机器都在重新编译整个代码之前实际运行它,让我在完成任何有用的事情之前坐在那里几分钟.

我的问题是:

  1. 为什么他们需要重新编译?所有机器都可以使用相同的JVM,所以不应该立即运行吗?

  2. 如何解决使每台机器编译"它自己的副本"的问题?

dre*_*xin 5

sbt是一个构建工具,而不是应用程序运行器.使用sbt-assembly构建一个all in jar,并将jar放在每台机器上并使用scalajava命令运行它.