【问题标题】:How to append settings to a sbt project?如何将设置附加到 sbt 项目?
【发布时间】: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 文件夹中,它不会编译。

【问题讨论】:

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


    【解决方案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 )
    猜你喜欢
    • 1970-01-01
    • 2014-06-05
    • 2018-09-17
    • 2013-12-11
    • 2012-02-18
    • 2015-01-22
    • 1970-01-01
    • 2012-05-16
    • 1970-01-01
    相关资源
    最近更新 更多