如何将设置附加到 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
)
)
我的 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
)
)