如何创建打印命令行参数的任务?

Pau*_*son 5 scala sbt

我在http://www.scala-sbt.org/0.13/docs/Input-Tasks.html上找到了完全令人费解的文档.有人可以为我提供一个完整的任务/输入任务示例,该任务采用命令行参数并对其执行某些操作,例如:

sbt "greeting hello world"
Run Code Online (Sandbox Code Playgroud)

并打印"你好世界"

Jac*_*ski 5

遵循文档输入任务(主要更改输入任务的名称,因此它是greeting):

import sbt.complete.Parsers.spaceDelimited

val greeting = inputKey[Unit]("A demo input task.")

greeting := {
  val args: Seq[String] = spaceDelimited("<arg>").parsed
  args foreach println
}
Run Code Online (Sandbox Code Playgroud)

有了上面的build.sbt,你就可以从控制台调用输入任务了:

> greeting "hello world"
hello world
Run Code Online (Sandbox Code Playgroud)

或从命令行:

?  so-25596401  xsbt 'greeting "hello world"'
[info] Loading global plugins from /Users/jacek/.sbt/0.13/plugins
[info] Set current project to so-25596401 (in build file:/Users/jacek/sandbox/so-25596401/)
hello world
[success] Total time: 0 s, completed Sep 1, 2014 1:34:31 AM
Run Code Online (Sandbox Code Playgroud)

请注意用参数指定什么是单个任务/命令的引号。