你能在Command中访问SBT SettingKey吗?

时间:2015-04-20 14:14:07

标签: scala sbt

我正在编写一个命令并希望使用Logger中的TaskStreams,但这是不可能的,因为您无法访问命令中的SettingKey的.value。有什么办法吗?

def myCommand = Command.single("myCommand") {
  case (currentState, userInput) =>
    val extracted = Project.extract(currentState)
    val log = streams.value.log   <--- not allowed
    log.info("Some logging")
    currentState
}

1 个答案:

答案 0 :(得分:3)

streams用于任务,而不是命令。

因此,一种方法是创建“持有者”TaskKey并获取其中的流,例如sbt-pgp创建并使用pgpCmdContext - 请参阅pgp-cmd的定义


另一种方法是使用sLog,但我不确定是否应该使用sLog

val myCommand = Command.single("myCommand") { case (s, arg) =>
  val extracted = Project extract s
  val log = extracted get sLog
  log info "Some logging"
  currentState
}