- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
谁能帮我创建一个 SBT 任务来支持来自命令行的类似属性的参数?
lazy val myTask = inputKey[Unit]("my task")
myTask := {
if (directoryOpt.isEmpty) // directoryOpt comes from an optional command line argument: directory="~/downloads"
fullRunInputTask(inputKey, Compile, "example.MyTaskClass")
else
fullRunInputTask(inputKey, Compile, "example.MyTaskClass", directoryOpt.get)
}
任务可以从命令行运行,例如:
sbt myTask directory="~/downloads"
我确实在 http://www.scala-sbt.org/0.13/docs/Input-Tasks.html 阅读了 sbt 文档.但它只解释了如何创建任务解析器,如 sbt myTask option1 option2
,这并不能完全满足我的需要。
更新:我使用了 jazmit 的解决方案,因为这是一个简单的改变。它运作良好!我也会尝试 Mariusz 的解决方案并在此处更新。
最佳答案
您可以将 project/Build.scala
与您的 build.sbt
一起用于您的输入。您也可以使用 Commands
而不是 Tasks。下面是一个例子:
import sbt._
import Keys._
object CustomBuild extends Build {
def myTask = Command.args("myTask", "<name>"){ (state, args) =>
val argMap = args.map { s =>
s.split("=").toList match {
case n :: v :: Nil => n -> v
}
}.toMap
//println(argMap) //to see all argument pairs
//react on name in params list
println("Hi "+ argMap.getOrElse("name", "Unknown"))
state //Command can modify state, so you must to return it.
}
}
现在你必须将这个命令添加到你的项目中,在 build.sbt add 中
commands += myTask
现在你可以使用它了:
> sbt "myTask name=Mario"
> Hi Mario
> sbt myTask
> sbt Hi Unknown
希望对您有所帮助!
有关命令的更多信息: you can find here
关于scala - 具有类似属性参数的 SBT InputKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33634137/
谁能帮我创建一个 SBT 任务来支持来自命令行的类似属性的参数? lazy val myTask = inputKey[Unit]("my task") myTask := { if (dir
在 SBT 中:我想定义一个 inputKey,它读取命令行参数,稍微更改它们并使用结果作为其他 inputKeys 的输入。 我试过: lazy val demo = inputKey[Unit](
我正在尝试创建一个自定义 CIFilter。到目前为止,这个滤镜只是使图像变亮,这不是我真正想要的,但我这样做是为了看看是否可以让它工作。虽然过滤器使用 inputBlurRadius 的设定值,但我
在 0.7.x我们使用了 dependsOn声明一个任务依赖于其他任务 - 这意味着必须首先执行其他任务。 在 0.11.x我们使用 argTask map { args =>
我有一个 QCView,里面有一个 boolean 输入分割器。当我尝试执行 [qcview setValue:NO forInputKey:@"showCube"]; 时,它按预期工作,并且输入设置
当 Map 和 Reduce 类必须尊重地扩展 Mapper 和 Reducer 类时,为什么我们需要在 MapReduce 作业中显式设置 OutputKey/InputKey 类,这需要添加 ?
我是一名优秀的程序员,十分优秀!