相关疑难解决方法(0)

如何更改SBT命令内的设置?

我希望有一个命令publish-snapshot可以publish使用修改后的version设置运行任务(该设置将在执行命令时计算).

我想出了如何获取version内部命令的当前值,并且Project.runTask("task", "scope", ...)似乎是调用publish任务的正确调用.

我唯一感到困惑的是如何State使用新版本值修改实例.我的所有尝试似乎都对原始版本设置无效.

我最后一次尝试:

val printVers = TaskKey[Unit]("printvers")
val printVersTask = TaskKey[Unit]("printvers") <<= {version map println}

def publishSnapshot = Command.command("publish-snapshot") { state =>
  val newState = SessionSettings.reapply(state.get(sessionSettings).get.appendRaw(version := "???"), state)
  Project.runTask(printVers in Compile, newState, true)

  state
}

lazy val root = Project("main", file("."),
                        settings =
                          Defaults.defaultSettings ++
                          Seq(printVersTask)).settings(commands += publishSnapshot)
Run Code Online (Sandbox Code Playgroud)

有没有办法解决这种行为?

scala sbt

31
推荐指数
3
解决办法
3832
查看次数

标签 统计

sbt ×1

scala ×1