【发布时间】:2017-06-24 16:20:30
【问题描述】:
我想在我的 sbt 构建中多次运行我的任务。
lazy val sampleTask = taskKey[Unit]("A sample task.")
val dynamic = Def.taskDyn {
println("Called dynamic")
Def.task {
println("Executing dynamic task")
}
}
lazy val library = (project in file("library")).
settings(
sampleTask := {
for (i <- (1 until 4)) {
println(s"Loop $i")
val num = dynamic.value
}
}
)
SBT 默认缓存任务的执行,结果我得到:
Called dynamic
Executing dynamic task
Loop 1
Loop 2
Loop 3
我想每次调用动态任务时都运行它,所以我得到:
Called dynamic
Executing dynamic task
Loop 1
Called dynamic
Executing dynamic task
Loop 2
Called dynamic
Executing dynamic task
Loop 3
是否可以强制 sbt 在一次构建中多次运行相同的任务?
【问题讨论】:
-
您想每次都运行动态任务及其所有依赖项还是只运行动态任务?
-
我想运行 N 次测试,每次测试运行后将测试结果复制到单独的文件夹。运行测试 N 次后,我将处理所有结果以找到不稳定的测试。所以,我想每次都运行任务及其依赖项。
-
我认为您需要编写命令而不是任务。 scala-sbt.org/0.13/docs/Commands.html