Scala 将参数传递给sbt任务
我有以下sbt任务,我想将参数传递给:Scala 将参数传递给sbt任务,scala,sbt,Scala,Sbt,我有以下sbt任务,我想将参数传递给: import sbt.complete._ import complete.DefaultParsers._ val stageEnv: Parser[String] = " staging" val prodEnv : Parser[String] = " production" val combinedParser: Parser[String] = stageEnv | prodEnv slick := slickCodeGenTask.val
import sbt.complete._
import complete.DefaultParsers._
val stageEnv: Parser[String] = " staging"
val prodEnv : Parser[String] = " production"
val combinedParser: Parser[String] = stageEnv | prodEnv
slick := slickCodeGenTask.value
lazy val slick = inputKey[InputTask[Seq[File]]]("gen-tables")
lazy val slickCodeGenTask = Def.inputTask {
...
s.log.info(combinedParser.parsed.trim)
Seq(file(fname))
}
但是,当我运行它并传递类似“sbt slick prodEnv”的参数时,我得到以下错误:
[error] Not a valid command: prodEnv
[error] Not a valid project ID: prodEnv
[error] Expected ':' (if selecting a configuration)
[error] Not a valid key: prodEnv (similar: products)
[error] prodEnv
[error]
这起到了作用:
import complete.DefaultParsers._
val slick = inputKey[Seq[File]]("gen-tables")
slick := {
...
val arg: String = spaceDelimited("<arg>").parsed(0)
...
}
import complete.DefaultParsers_
val slick=inputKey[Seq[File]](“gen tables”)
光滑的:={
...
val arg:String=spaceDelimited(“”)。已解析(0)
...
}
电话:
sbt“光滑舞台”
sbt'slick production'我认为
sbt'slick prodEnv'
会起作用。@AssenKolov谢谢,但仍然收到类似的错误-错误]不是有效的命令:slick所以,这与参数无关,但您根本看不到任务?你确定你已经发布了最新版本吗?是的,任务运行良好,只是没有看到argI在两周前提出了几乎相同的问题。我意识到我应该将该任务称为交互式任务或sbt“task args”
,它起了作用,因此我删除了这个问题。看见