首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以同时运行2个sbt项目?

是否可以同时运行2个sbt项目?
EN

Stack Overflow用户
提问于 2020-04-08 01:30:11
回答 2查看 188关注 0票数 2

我有2个sbt项目是可运行的(akka应用程序和另一个播放应用程序)。

是否可以同时运行这两个应用程序,并使用~reStart,这样它们就可以刷新对我的项目所做的任何更改?

有什么正确操作的建议,这样我就不会内存不足了吗?

EN

回答 2

Stack Overflow用户

发布于 2020-04-08 01:56:23

如果你使用的是Play Framework的最新版本,你可以在没有任何插件的情况下使用~run。对于独立的akka应用,你可以使用一个叫做sbt-revolver的库

代码语言:javascript
运行
复制
runAkkaServer := {
  (reStart in Compile in `akka-server`).evaluated
}

runWebServer := {
  (~run in Compile in `web-server`).evaluated
}

mainClass in reStart := Some("com.example.MainAkka")

val runAkkaServer = inputKey[Unit]("Runs akka-server")
val runWebServer = inputKey[Unit]("Runs web-server")

注意:您可以在没有自定义任务的情况下在重启模式下运行这两个应用程序: 1. ~run - Play服务器2. reStart -独立

更新:

我已经尝试使用下面的命令对他们两个,似乎sbt-revolver是一种诡计和杀死应用程序在启动。当用run替换reStart时,它可以完美地工作,但不会触发更改。

代码语言:javascript
运行
复制
 screen -d -m sbt runAppServer; screen -d -m sbt runWebServer

所以上面的代码并没有达到预期的效果。我们可以在单独的窗口中运行它们,而不是自定义任务,如下所示:

代码语言:javascript
运行
复制
screen -dmS "appserver" sh -c "sbt 'project appserver;~reStart'; exec bash" ;  screen -dmS "webserver" sh -c "sbt runWebServer; exec bash"

如果你愿意,也可以用sbt 'project anothersubmodule;~run'代替sbt runWebServer

我已经创建了一个简单的演示项目,您可以找到here以便启动,您可以只调用:./starter.sh

注意:如果您不容易安装screen命令,可以安装它。

票数 1
EN

Stack Overflow用户

发布于 2020-04-29 04:01:26

打开两个不同的终端选项卡;cd进入每个选项卡中的特定目录,然后使用SBT运行。

代码语言:javascript
运行
复制
sbt run

对于多个web应用程序,请指定不同的端口:

代码语言:javascript
运行
复制
sbt run -Dhttp.port=8888
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61085900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档