2014-08-31 2 views
5

Я нахожу документацию по адресу http://www.scala-sbt.org/0.13/docs/Input-Tasks.html совершенно непонятным. Может кто-то дать мне полный пример задачи/ввода задачи, которая принимает аргумент командной строки и делает что-то с ним, например:Как создать задачу, которая печатает аргументы командной строки?

sbt "greeting hello world" 

и печатает «привет мир»

ответ

3

После документа Input Tasks (с основное изменение имени входного задания, так это 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 
} 

с выше build.sbt можно назвать задачу ввода с консоли:

> greeting "hello world" 
hello world 

или из командной строки:

➜ 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 

Обратите внимание на кавычки, которые определяют, что является единственной задачей/команды с аргументами.

Смежные вопросы