Как запустить приложение scopt scala

#scala #command-line-interface #scopt

Вопрос:

Я использую эту библиотеку для написания приложения cli: https://github.com/scopt/scopt

Я могу запустить свое приложение только внутри sbt с помощью команды: run --foo 2 -b 1

В идеале я хотел бы запустить свое приложение в терминале следующим образом: myapp --foo 2 -b 1 или этот скрипт : ./myapp --foo 2 -b 1

Как я могу это сделать?

Ответ №1:

Вы можете использовать sbt-сборку для создания толстой банки, чем затем вы можете запустить, как:

 java -jar path/to/app.jar --foo 2 -b 1
 

Вы также можете использовать sbt-native-packager для создания установщика для вашей платформы, после запуска установщика в нем появится скрипт, PATH который позволит вам сделать:

 app --foo 2 -b 1
 

Но, под капотом, это все еще зовет java -jar
Если вы не хотите устанавливать JRE на свою целевую платформу, вы можете использовать sbt-native-image (который под капотом использует Graal) для создания собственного образа вашего приложения, который можно запускать как любой другой двоичный файл.

 ./app --foo 2 -b 1