如何将设置附加到sbt项目?

时间:2017-10-11 16:35:15

标签: scala sbt sbt-native-packager sbt-plugin

我的build.sbt文件是这样的:

./ build.sbt

lazy val root = (project in file(".")
  .settings(libraryDependencies ++= Seq(...))

和第二个文件(在同一文件夹中),如下所示:

./ release.sbt

lazy val releaseStuff: Def.Setting[Task[Unit]] = DockerSbtPlugin.releaseStuff
lazy val root = (project in file(".").settings(releaseStuff)

但是命令releaseStuff无法识别,我得到:

sbt:sitemap> releaseStuff
[error] Not a valid key: releaseStuff (similar: releasePuff, releaseCough)
[error] releaseStuff
[error]             ^

我做错了吗?

请注意releaseStuff取决于插件,因此如果放在project文件夹中,则无法编译。

1 个答案:

答案 0 :(得分:1)

我不知道release.sbt是什么,但您可以在releaseStuff文件夹中配置project。您只需要明确导入适用的插件包。

例如,当我想将native-packager用于docker时,我使用

创建了一个project/docker.scala文件
import sbt._
import Keys._
import com.typesafe.sbt.packager.docker._
import com.typesafe.sbt.packager.universal.UniversalPlugin.autoImport._

object Docker {
  lazy val settings = Seq(
    ...
  )
}

并将其包含在build.sbt

lazy val root = (project in file(".")
  .settings(
    name := "widget",
    Docker.settings
  )
)