1

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

4

1 回答 1

1

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

例如,当我想使用native-packagerfor 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
  )
)
于 2017-10-11T20:43:40.747 回答