У меня есть альтернативный способ выполнения существующей дорогостоящей задачи, хотя я не знаю до выполнения, если я это сделаю. (Например, кеш файлов.)Как условно выполнить задачу SBT
Как это сделать?
Например, packageBin:
packageBin in Compile := Def.taskDyn {
if (canDoItMyWay) {
doItMyWayTask
} else {
Defaults.packageTask
}
}.value
Это не работает, если он выполняет последний путь:
$ sbt packageBin
[trace] Stack trace suppressed: run last compile:packageBin for the full output.
[error] (util-2_10/compile:packageBin) sbt.Init$RuntimeUndefined: References to undefined settings at runtime.
Но не всегда, что выполнить первоначальную packageBin в задаче компиляции? Моя идея состояла в том, чтобы избежать некоторых ситуаций. –
№ Если только условие не выполняется. –
@PaulDraper Я отредактировал свой ответ. это работает для вас? –