Comment puis-je exécuter un sbt classe principale de la coque comme normal programme de ligne de commande?

Comment puis-je exécuter un sbt application à partir de la coquille, de sorte que je peux utiliser mon application comme un programme de ligne de commande (comme s'exécuter directement via scala mais sans avoir à configurer un énorme chemin de classe)?

Je sais que je peux faire:

echo hello | sbt 'run-main com.foo.MyMain3 arg1 arg2' > out.txt

Mais cette (1) prend une éternité à démarrer car il commence sbt, (2) les causes de tous les stdout et stderr pour aller vers la sortie standard, et (3) les causes de toutes les sorties à être décorées avec un enregistreur [info] ou [erreur].

J'ai regardé https://github.com/harrah/xsbt/wiki/Launcher mais il semble trop lourd, car il télécharge les dépendances et met en place un nouvel environnement et autres joyeusetés. Je tiens juste à exécuter cette application au sein de mon environnement de développement existant.

A ce jour, j'ai bricolé mon propre script pour construire un chemin de classe, et vous pouvez aussi faire d'autres choses comme modifier votre fichier de projet pour obtenir sbt pour imprimer le raw classpath, mais je me sens comme il doit y avoir une meilleure façon.

  • comme mvn exec:java ou mvn appassembler:assemble
InformationsquelleAutor Yang | 2011-08-20