如何创建修改其他任务的任务?

时间:2018-05-31 21:56:32

标签: sbt

我希望能够运行sbt foo test,并在测试中看到skip in compile := true

如何在sbt 0.13中创建foo

1 个答案:

答案 0 :(得分:0)

您是否尝试在命令定义中使用append,如下所示:

lazy val foo = taskKey[Unit]("A foo task")
foo := { println("hello world") }

def testFoo = Command.command("testFoo") { state =>
  val extracted = Project extract state
  import extracted._
  runTask(foo, state)
  runTask(
    test in Test,
    append(Seq(skip in compile := true), state)
  )
  state
}

commands ++= Seq(testFoo)

执行sbt testFoo将首先运行foo,然后运行test并跳过编译,最后返回没有skip in compile的旧状态。