Sbt 提供部分输入,来自输入任务的设置

Sbt 提供部分输入,来自输入任务的设置,sbt,Sbt,在本节选中,我尝试创建第二个inputKey,其中包含一些来自设置的预应用输入: val foo = inputKey[Unit]("....") foo := { ... } val foo2 = inputKey[Unit]("....") foo2 := { foo.partialInput(" "+name.value).evaluated } 但是我得到了非法动态引用错误,因为如果我使用评估,则partialInput的参数必须是常量 解决这个问题的最好办法是什么 类似的问题

在本节选中,我尝试创建第二个inputKey,其中包含一些来自设置的预应用输入:

val foo = inputKey[Unit]("....")
foo := { ... }
val foo2 = inputKey[Unit]("....")
foo2 := {
    foo.partialInput(" "+name.value).evaluated
}
但是我得到了
非法动态引用
错误,因为如果我使用
评估
,则
partialInput
的参数必须是常量

解决这个问题的最好办法是什么

类似的问题,我以前读过:

使用SBT 0.13.7

本例中所示的技术取自SBT参考文档,但不起作用:

lazy val run2 = inputKey[Unit]("Runs the main class twice: " +
   "once with the project name and version as arguments"
   "and once with command line arguments preceded by hard coded values.")

// The argument string for the first run task is ' <name> <version>'
lazy val firstInput: Initialize[String] =
   Def.setting(s" ${name.value} ${version.value}")

// Make the first arguments to the second run task ' red blue'
lazy val secondInput: String = " red blue"

run2 := {
   val one = (run in Compile).fullInput(firstInput.value).evaluated
   val two = (run in Compile).partialInput(secondInput).evaluated
}
lazy val run2=inputKey[Unit](“运行主类两次:”+
“一次,以项目名称和版本作为参数”
“一次,命令行参数前面有硬编码值。”)
//第一次运行任务的参数字符串为“”
lazy val firstInput:初始化[字符串]=
Def.setting(s“${name.value}${version.value}”)
//将第一个参数设置为第二个运行任务“红蓝”
lazy val secondInput:String=“红蓝”
run2:={
val one=(在编译中运行).fullInput(firstInput.value).evaluated
val two=(在编译中运行).partialInput(secondInput).evaluated
}