2012-11-09 14 views
27

Próbowałem uruchomić mój projekt scala z argumentami CLI za pomocą sbt launcher version 0.12.1. Działa OK gdy uruchamiane z wiersza scala:'sbt run' z argumentami CLI z powłoki

$ sbt 
[info] (...) 
> run sth 
(...) 
[success] Total time: 0 s, completed Nov 9, 2012 3:04:47 PM 

Ale gdy chcę go uruchomić cały ze skorupki, jak na przykład za this answer, dostaję błąd:

$ 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] ^

A "musisz podać nazwę pliku źródłowego" informacje są podane przez mój projekt scala, aby wskazać, że główna nie otrzymała żadnych argumentów CLI.

Czy to było coś, co działało w poprzedniej wersji sbt (w zadanym pytaniu), czy robię coś nie tak?

Odpowiedz

30

Problem może być sposobem przekazywania argumentów w pliku startowym sbt do Java. W moim przypadku jest to:

java -Xmx4096M -jar `dirname $0`/sbt-launch_0.12.1.jar "[email protected]" 

I właśnie potwierdziłem: Działa zarówno z 0,12 i 0.12.1. Na przykład, dla programu, który po prostu drukuje swoje argumenty uzyskać:

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

Korzystając run-main można również uniknąć ryzyka, że ​​SBT jakoś nie widzi swoją główną funkcję.

+0

Dodawanie cudzysłowie argumentów SBT pracował dla mnie, zbyt ;-). –