【问题标题】:Continuous build and run with SBT使用 SBT 持续构建和运行
【发布时间】:2018-03-22 07:48:12
【问题描述】:

我很想找到一种更好的方法来运行我的 SBT 项目,通过连续构建(编译)和运行,SBT 已经可以进行连续编译和测试,但不能使用 run 命令,除非我不知道这是怎么做到的是可能的。

我尝试在run 上使用~ 命令,但它什么也没做 sbt clean compile ~run

我尝试使用 spray sbt 插件 addSbtPlugin("io.spray" % "sbt-revolver" % "0.9.1") 但它是如此的情绪化并且在尝试终止当前进程时挂起很多,从而更快地杀死应用程序然后运行sbt clean compile run

有没有办法做到这一点?

【问题讨论】:

  • 你说什么都不做是什么意思? sbt clean ~run 对我来说很好用(compile 有多余的)。您更改源,它会重新运行程序。您期望哪种行为?
  • 我希望如果我编辑 scala 文件,它会重新编译并重新启动应用程序,我有一个码头服务器,上面运行着一些基本的东西,比如旋转模板
  • 问题是你的 main 没有返回。 sbt 不会杀死它重新运行。所以我认为使用 sbt-revolver 是你最好的选择。如果您对此有一些特殊问题,您可以在问题中添加详细信息(或提出新问题)。上次我使用它时,效果非常好,所以可能与您的设置有关。
  • hmmm... 有趣的猜测,我的主类有一个码头服务器开始,最后我调用了一个单独的方法来处理停机sys.addShutdownHook 停止码头服务器,你呢认为我应该返回一些具体的东西?
  • 不,我的意思是您的主要方法不会终止(因为服务器不应该终止)。所以当它运行时,sbt 不会中断它。但我认为 sbt-revolver 可以。

标签: sbt


【解决方案1】:

sbt clean ~run 应该可以正常工作并在每次更改源时重新运行 main 方法。但是如果你正在运行一个应该连续运行的 web 服务器,sbt 不会中断它重新运行。

因此,您应该为此使用 sbt-revolver,并通过提出其他问题或提交插件的错误报告来解决任何问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-01
    • 2015-05-27
    • 2013-06-16
    • 2011-05-28
    • 1970-01-01
    • 2013-04-17
    • 2018-01-06
    相关资源
    最近更新 更多