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