2017-02-07 2 views
0

Я хочу выполнить свою задачу несколько раз в моей сборке sbt.Запуск задачи несколько раз в 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 запускать одну и ту же задачу много раз в одной сборке?

+0

вы хотите запустить динамическую задачу и весь его зависимости каждый раз, или только динамическая задачу? –

+0

Я хочу запускать тесты N раз, после каждого тестового запуска скопировать результат теста, чтобы отделить папку. После выполнения тестов N раз я обработаю все результаты, чтобы найти flaky тесты. Итак, я хочу запускать задачу с ее зависимостями каждый раз. – KrzyH

+1

Думаю, вам нужно будет написать команду вместо задачи. http://www.scala-sbt.org/0.13/docs/Commands.html –

ответ

Смежные вопросы