У меня есть много проектов sbt, которые имеют общее поведение, добавляя настройки к собственным пакетам sbt.
Я попытался запихнуть все общие функции и задачи утилиты в пользовательский плагин. В частности, у меня есть пользовательская задача, которую необходимо выполнить до того, как универсальный упаковщик заархивирует все.
Вот структура:
object MyPlugin extends AutoPlugin {
// my custom task
val customTask = Def.task { ...}
override def requires: Plugins = JavaAppPackaging
object autoImport {
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.1.1")
}
import autoImport._
override def projectSettings: Seq[Setting[_]] =
Seq(
packageZipTarball in Universal <<= (packageZipTarball in Universal) dependsOn customTask
)
}
плагин компилируется нормально, но когда я импортирую его в свой проект, вот так:
lazy val myProj: Project = (project in file("."))
.settings(MyPlugin.projectSettings: _*)
и я бегу:
sbt universal:packageZipTarball
Я получил:
References to undefined settings:
universal:packageZipTarball from universal:packageZipTarball
Что мне нужно, чтобы исправить это?