Как я могу запустить приложение sbt из оболочки, чтобы я мог запускать свое приложение как обычную программу командной строки (как если бы он выполнялся напрямую через scala
, но без необходимости создания огромного пути к классам)?
Я знаю, что могу:
echo hello | sbt 'run-main com.foo.MyMain3 arg1 arg2' > out.txt
Но это (1) начинается навсегда, потому что он запускает sbt, (2) заставляет все stdout и stderr перейти к stdout, и (3) заставляет весь вывод декорироваться регистратором [info] или [error].
Я посмотрел на https://github.com/harrah/xsbt/wiki/Launcher, но он кажется слишком тяжелым, поскольку он загружает зависимости и устанавливает новую среду и многое другое. Я просто хочу запустить это приложение в моей существующей среде разработки.
До сих пор я объединил свой собственный script, чтобы создать путь к классу, и вы также можете сделать некоторые другие вещи, такие как изменить файл проекта, чтобы получить sbt для печати raw classpath, но я чувствую, что должен быть лучший способ.