如何将设置附加到 sbt 项目?
Posted
技术标签:
【中文标题】如何将设置附加到 sbt 项目?【英文标题】:How to append settings to a sbt project? 【发布时间】:2018-03-23 10:25:58 【问题描述】:我有这样的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】:我不知道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
)
)
【讨论】:
2018 年更新:lazy val root = (project in file(".")) .settings( name := "widget", Docker.settings )
以上是关于如何将设置附加到 sbt 项目?的主要内容,如果未能解决你的问题,请参考以下文章
如何阻止 sbt package 命令将哈希附加到 jar 的名称