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

How to append settings to a sbt project?

我的 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 文件夹中它不会编译。

我不知道release.sbt是什么,但是你可以在project文件夹里面配置releaseStuff。您只需显式导入适用的插件包即可。

例如,当我想为 docker 使用 native-packager 时,我创建了一个 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
  )
)