【问题标题】:Override sbt's `fork` setting覆盖 sbt 的 `fork` 设置
【发布时间】:2021-10-31 06:54:26
【问题描述】:

我有一个 Akka 应用程序,在 build.sbt 中有一个 fork := true 设置。所以当我需要调试代码时,我手动将其设置为false。这是很容易忘记的事情。

有没有办法从命令行覆盖fork 设置?例如在运行sbt clean run 时。我读过有人可以创建一个单独的任务,override fork 仅用于该任务。在后一种情况下,clean run 任务会是什么样子?

更新:很抱歉给您带来了困惑。在 Marko 的回复之后,我意识到我的票不完整。我想要一种在非交互式外壳中设置它的方法。现在我有一个 IntelliJ sbtTask(它也接受环境变量等),我只需单击调试按钮即可运行应用程序。任务本身只有两个词 - clean run,但应该需要创建一个单独的词。

【问题讨论】:

    标签: scala intellij-idea sbt fork


    【解决方案1】:

    考虑set 命令,例如在 sbt shell 中

    set fork := false; clean; run
    

    更改将坚持until

    重新启动sbt,重新加载构建,或者设置被另一个设置命令覆盖或被会话命令删除

    【讨论】:

    • 有没有办法在非交互式shell中设置?我想要一个 IntelliJ sbtTask,只需单击调试按钮即可。我会更新我的问题 - 我很抱歉。
    【解决方案2】:

    Mario 的回答非常好,但我很好奇是否有单行指令可以与我的团队分享。我想我终于找到它了,感谢 Sbt 文档中的this FAQ item

    build.sbt 中可以添加以下内容:

    lazy val runWithForkFalse = taskKey[Unit]("Run application with `set fork:= false` for debugging purpose.")
    
    runWithForkFalse / fork := false
    
    fullRunTask(runWithForkFalse, Compile, "com.Main")
    

    然后在 InelliJ 中,您可以创建一个只有两个单词 clean runWithForkFalse 的 Sbt 任务,然后单击它们的调试图标。当然你也可以直接从命令行运行sbt clean runWithForkFalse

    【讨论】:

      猜你喜欢
      • 2018-04-09
      • 1970-01-01
      • 2014-06-10
      • 2019-01-23
      • 1970-01-01
      • 1970-01-01
      • 2018-02-12
      • 1970-01-01
      • 2017-04-18
      相关资源
      最近更新 更多