【问题标题】:How to run multiple sbt projects in parallel?如何并行运行多个 sbt 项目?
【发布时间】:2019-12-04 23:24:07
【问题描述】:

我有一个多项目 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(它们将在不同的端口上运行)

【问题讨论】:

标签: scala playframework sbt microservices


【解决方案1】:

您可以尝试使用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 &

我无法测试这个,让我知道它是否有效。

【讨论】:

  • 有点不工作..我看到两个服务都启动了,但是当我通过邮递员到达第一个端点时它永远不会结束......第二个服务完全关闭..
猜你喜欢
  • 1970-01-01
  • 2014-11-15
  • 2014-07-16
  • 2020-03-01
  • 2016-10-01
  • 2017-01-27
  • 2014-10-18
  • 1970-01-01
  • 2020-12-23
相关资源
最近更新 更多