Scala ';sbt运行';使用shell中的CLI参数

Scala ';sbt运行';使用shell中的CLI参数,scala,sbt,Scala,Sbt,我尝试使用sbt启动器版本0.12.1运行带有CLI参数的scala项目。从scala提示符运行时,它工作正常: $ sbt [info] (...) > run sth (...) [success] Total time: 0 s, completed Nov 9, 2012 3:04:47 PM 但当我想从shell整体运行它时,例如,根据,我得到一个错误: $ sbt "run sth" [info] (...) you need to provide source file n

我尝试使用sbt启动器版本0.12.1运行带有CLI参数的scala项目。从scala提示符运行时,它工作正常:

$ sbt
[info] (...)
> run sth
(...)
[success] Total time: 0 s, completed Nov 9, 2012 3:04:47 PM
但当我想从shell整体运行它时,例如,根据,我得到一个错误:

$ sbt "run sth"
[info] (...)
you need to provide source file name
[success] Total time: 0 s, completed Nov 9, 2012 3:07:07 PM
[error] Not a valid command: sth (similar: set, last, shell)
[error] Expected '/'
[error] Expected ':'
[error] Not a valid key: sth (similar: test, state, watch)
[error] sth
[error]    ^
我的scala项目提供了“您需要提供源文件名”信息,以表明main没有获得任何CLI参数


是以前版本的sbt(在参考问题中)起作用了,还是我做错了什么?

问题可能是您将
sbt
启动文件中的参数传递给Java的方式。就我而言,它是:

java -Xmx4096M -jar `dirname $0`/sbt-launch_0.12.1.jar "$@"
我刚刚确认:它同时适用于0.12和0.12.1。例如,对于一个只打印其参数的程序,我得到:

$ sbt "run-main SomeMain blah blah"
Outut:
[blah, blah]

通过使用
runmain
您还可以避免sbt不知何故看不到您的主要功能的可能性。

这是0.12.1启动程序中的一个错误:

我在github上查找有关它的错误,但我没有找到,谢谢!我尝试只使用“run”和不同数量的参数,但在我的0.12.1版本中,我无法复制它。在SBT参数周围添加双引号也对我有效;-)。