【问题标题】:Set task settings from build.sbt从 build.sbt 设置任务设置
【发布时间】:2018-07-04 23:31:01
【问题描述】:

我正在编写一个小型 sbt 插件来生成一些文件,这些文件应该可以通过目标路径参数进行配置。所以我写了这个插件代码:

object GeneratorPlugin extends AutoPlugin {
  object autoImport {
    val targetPath = settingKey[String]["target directory"]
    val generateFiles = taskKey[Unit]["generate files"]
  }

  import autoImport._

  override def trigger = allRequirements

  override lazy val buildSettings = Seq(
    targetPath := ".",
    generateFiles := generateTask
  )

  lazy val generateTask = Def.task {
    System.out.println(targetPath.value)
  }
}

当在project/plugins.sbt 中使用addSbtPlugin 导入它并使用sbt generateFiles 运行它时,会正确打印.。但是,当我在 build.sbt 中更改 targetPath 的值时,结果不会改变。

targetPath := "/my/new/path"

sbt generateFiles 的结果仍然是 .。 导入插件时有没有办法在我的build.sbt 中更改targetPath 的值?

【问题讨论】:

    标签: scala plugins sbt settings


    【解决方案1】:

    你可以这样改:

    targetPath in ThisBuild := "/my/new/path"
    

    或在 sbt 1.1 的新斜杠语法中

    ThisBuild / targetPath := "/my/new/path"
    

    【讨论】:

      猜你喜欢
      • 2019-03-18
      • 2019-08-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-30
      • 1970-01-01
      • 2010-12-18
      • 1970-01-01
      • 2014-12-10
      相关资源
      最近更新 更多