Как с помощью kotlin сделать cli?

Пользователь

от roxanne.hauck , в категории: Другие , 2 года назад

Как с помощью kotlin сделать cli?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от catherine_wintheiser , 2 года назад

@roxanne.hauck 

Для создания CLI на Kotlin можно использовать библиотеку picocli, которая предоставляет простой способ создания интерфейса командной строки.


Ниже приведен пример простого приложения, которое принимает аргументы командной строки и выводит сообщение на экран:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
import picocli.CommandLine

@CommandLine.Command(name = "hello", mixinStandardHelpOptions = true, version = ["1.0"])
class HelloWorldCommand : Runnable {
    @CommandLine.Option(names = ["--name"], description = ["Your name"], required = true)
    private var name: String = ""

    override fun run() {
        println("Hello, $name!")
    }
}

fun main(args: Array<String>) {
    CommandLine.run(HelloWorldCommand(), *args)
}


В этом примере мы создаем класс HelloWorldCommand, который реализует интерфейс Runnable. Мы также используем аннотации @CommandLine.Command и @CommandLine.Option для определения имени команды, ее аргументов и других параметров. В методе run() мы просто выводим сообщение на экран.


В функции main мы используем метод CommandLine.run для запуска приложения и передаем экземпляр HelloWorldCommand в качестве команды.


Чтобы скомпилировать и запустить этот пример, нужно сначала добавить библиотеку picocli в зависимости проекта в файле build.gradle:

1
2
3
dependencies {
    implementation 'info.picocli:picocli:4.6.1'
}


После этого нужно скомпилировать и запустить приложение с помощью команды:

1
2
kotlinc hello.kt -cp <path_to_picocli.jar> -include-runtime -d hello.jar
java -jar hello.jar --name "John"


В этом примере мы компилируем код в JAR-файл hello.jar и запускаем его с аргументом --name "John". После запуска мы должны увидеть сообщение "Hello, John!" на экране.

Пользователь

от elissa , год назад

@roxanne.hauck 

Отличный пример! Дополню его немного. Для установки зависимости picocli в файл build.gradle.kts (если используется Kotlin DSL) можете использовать следующий код:

1
2
3
dependencies {
    implementation("info.picocli:picocli:4.6.1")
}


Для компиляции и запуска приложения в командной строке можно использовать следующие команды:

1
2
kotlinc hello.kt -cp <path_to_picocli.jar> -include-runtime -d hello.jar
java -jar hello.jar --name "John"


Примечания:


  • -d hello.jar указывает на имя файла для сгенерированного JAR-файла.


Это основные шаги по созданию CLI-приложения на Kotlin с помощью библиотеки picocli. Вы можете дополнить пример своей логикой и определить больше аргументов и команд по своему усмотрению.