如何在Scala中自动重新运行sbt项目

3
我创建了一个sbt项目,使用akka-http学习简单的crud操作。首先,我添加了简单的路由来检查是否工作正常。

运行sbt run命令后,我发现它在本地运行时没有任何错误。

但是,当我对项目进行一些更改(例如:在运行代码中添加println语句)时,它不会自动编译。每次都必须退出(ctrl+c)正在运行的sbt。然后再次运行以查看更新后的代码。

所以我的问题是,如何在运行项目时自动编译sbt项目。

谢谢。

1个回答

5
据我所知,默认情况下sbt不支持该功能,但是有一个插件可以实现:sbt-revolver。它会在您的应用程序源代码发生任何更改时触发应用程序的重启。

只需添加:

addSbtPlugin("io.spray" % "sbt-revolver" % "0.9.1")

在你的build.sbt文件中添加以下内容,然后使用以下命令启动应用程序:
sbt ~reStart

我发现sbt-revolver已经在plugin.sbt文件中了。现在它正在使用~reStart自动编译。谢谢。 - md samual
如果你觉得这个回答有帮助,你可以批准或点赞它。 - Krzysztof Atłasik
如果您正在使用Play框架,则不需要sbt-revolver。 sbt启动Play并启用自动重载功能。当您发出请求时,如果有任何文件更改,Play将自动重新编译和重新启动您的服务器。 如有必要,应用程序将自动重启。 - md samual
https://www.playframework.com/documentation/2.8.x/PlayConsole#Development-mode - md samual

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接