#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