2012-11-09 14 views
27

Ho provato a eseguire il mio progetto scala con gli argomenti CLI utilizzando la versione 0.12.1 di sbt launcher. Funziona OK quando eseguito dal prompt Scala:'sbt run' con argomenti CLI dalla shell

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

Ma quando voglio farlo funzionare tutto da shell, come da this answer per esempio, sto ottenendo un errore:

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

E il "è necessario fornire il nome del file sorgente" le informazioni sono fornite dal mio progetto scala per indicare che main non ha ottenuto alcun argomento CLI.

È qualcosa che ha funzionato nella versione precedente di sbt (nella domanda di riferimento) o sto facendo qualcosa di sbagliato?

risposta

30

Il problema potrebbe essere il modo in cui si passano gli argomenti nel proprio file di avvio sbt in Java. Nel mio caso è:

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

E ho appena confermato: Funziona sia con 0.12 che con 0.12.1. Per esempio, per un programma che stampa solo i suoi argomenti ottengo:

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

Utilizzando run-main si può anche evitare la possibilità che in qualche modo sbt non vede la funzione principale.

+0

Aggiungendo le virgolette attorno agli argomenti SBT ha lavorato anche per me ;-). –

Problemi correlati