如何并行运行多个sbt项目?

时间:2019-12-04 23:24:07

标签: scala playframework sbt microservices

我有一个多项目sbt构建(每个项目都是微服务)。 为了方便开发,我想同时运行所有它们。 sbt可能吗?

lazy val root = (project in file("."))
  .aggregate(
    serviceA,
    serviceB
  )

lazy val serviceA = (project in file("service-a"))
 ...

 lazy val serviceB = (project in file("service-b"))
 ...

我可以分别使用serviceA/runserviceB/run来运行它们

但是我需要使用单个sbt命令运行serviceA和serviceB(它们将在不同的端口上运行)

1 个答案:

答案 0 :(得分:0)

您可以尝试使用Ammonite

我们使用Ammonite脚本(例如runner.sc)来运行sbt。我从来没有用过Future,因为我们一件事又一件事。

或使用简单的bash文件:

您的要求或多或少是在后台运行 sbt 。 这是一个相应的问题:how-to-run-sbt-as-daemon

将其带入您的问题,看起来像这样:

#!/usr/bin/env bash

sbt -Djline.terminal=jline.UnsupportedTerminal serviceA/run &
sbt -Djline.terminal=jline.UnsupportedTerminal serviceB/run &

我无法测试,请告诉我它是否有效。