【发布时间】:2017-02-10 11:17:22
【问题描述】:
我有许多共享共同行为的 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
我需要做什么来修复它?
【问题讨论】: