Я часто хочу выполнить некоторую настройку, прежде чем запускать одну из стандартных задач. Я понимаю, что могу выполнять новые задачи, которые выполняют существующие задачи в том порядке, в котором я хочу, но я нахожу, что громоздкость и вероятность того, что разработчик пропустит, что он должен запускать мой компилятор вместо компиляции, большой и приводит к затруднению исправления ошибок.
Итак, я хочу определить пользовательскую задачу (скажем подготовить-приложение) и ввести ее в дерево зависимостей существующих задач (например, package-bin), чтобы каждый раз, когда кто-то вызывает пакет-bin, мои пользовательские задачи запускаются прямо перед ним.
Я пробовал делать это
def mySettings = {
inConfig(Compile)(Seq(prepareAppTask <<= packageBin in Compile map { (pkg: File) =>
// fiddle with the /target folder before package-bin makes it into a jar
})) ++
Seq(name := "my project", version := "1.0")
}
lazy val prepareAppTask = TaskKey[Unit]("prepare-app")
но он не выполняется автоматически package-bin прямо перед тем, как он упаковывает компиляцию в банку. Итак, как мне изменить приведенный выше код для запуска в нужное время?
В более общем плане, где я могу найти информацию о подключении к другим задачам, например компиляции, и существует ли общий способ гарантировать, что ваши собственные задачи выполняются до и после вызова стандартных задач?