Utilitários CLI Kotlin: escrevendo do console do zero

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Por que Kotlin é a linguagem ideal para utilitários CLI?

\n\n

Quando se trata de criar ferramentas de console, muitos desenvolvedores instintivamente recorrem ao Python ou Bash. Mas se você já conhece Kotlin (e em nosso site pythonlib.ru acreditamos que um bom desenvolvedor domina várias linguagens), sabe o quão concisa e expressiva essa linguagem é. Criar utilitários CLI em Kotlin não é apenas uma questão de moda, mas uma maneira real de obter ferramentas rápidas, type-safe e multiplataforma.

\n\n

Imagine: você escreve um aplicativo de console em Kotlin que compila para um JAR ou binário nativo via GraalVM ou Kotlin/Native. Ele roda em qualquer lugar — desde um servidor Linux até a máquina Windows de um colega. Além disso, o código fica 2 a 3 vezes mais curto que em Java e muito mais seguro que em Python. Parece tentador? Vamos entender.

\n\n

O que é necessário para começar?

\n\n

Para criar um Kotlin CLI, você precisará do mínimo:

\n
    \n
  • JDK 11+ instalado (recomendo 17 ou 21)
  • \n
  • IntelliJ IDEA (versão Community é suficiente) ou qualquer editor de texto
  • \n
  • Conhecimento básico de Kotlin (funções, classes, coleções)
  • \n
  • Gradle ou Maven para build
  • \n
\n\n

Se você ainda não trabalhou com Kotlin no console — não se preocupe. Vamos percorrer o caminho desde um arquivo vazio até um utilitário completo que pode ser publicado e usado em pipelines de CI/CD.

\n\n

Passo 1: Configuração do projeto para utilitário CLI

\n\n

Vamos criar um projeto Gradle simples. Aqui está o build.gradle.kts mínimo:

\n\n
plugins {\n    kotlin("jvm") version "1.9.22"\n    application\n}\n\napplication {\n    mainClass.set("com.pythonlib.cli.MainKt")\n}\n\nrepositories {\n    mavenCentral()\n}\n\ndependencies {\n    implementation("com.github.ajalt.clikt:clikt:4.2.2")\n    implementation("org.jetbrains.kotlinx:kotlinx-cli:0.3.6")\n}
\n\n

Observe duas bibliotecas principais: Clikt e Kotlinx CLI. A primeira é a biblioteca mais popular para criar utilitários CLI em Kotlin. A segunda é a solução oficial da JetBrains. Neste artigo, usaremos Clikt, pois oferece mais flexibilidade e uma aparência mais elegante.

\n\n

Passo 2: Escrevendo o primeiro comando

\n\n

Vamos criar o arquivo src/main/kotlin/com/pythonlib/cli/Main.kt:

\n\n
package com.pythonlib.cli\n\nimport com.github.ajalt.clikt.core.CliktCommand\nimport com.github.ajalt.clikt.parameters.arguments.argument\nimport com.github.ajalt.clikt.parameters.options.option\nimport com.github.ajalt.clikt.parameters.options.flag\n\nclass GreetCommand : CliktCommand(\n    name = "greet",\n    help = "Sauda o usuário"\n) {\n    private val name: String by argument(\n        help = "Nome do usuário"\n    )\n\n    private val uppercase: Boolean by option(\n        "--uppercase", "-u",\n        help = "Exibir o nome em maiúsculas"\n    ).flag()\n\n    override fun run() {\n        val greeting = "Olá, $name!"\n        if (uppercase) {\n            echo(greeting.uppercase())\n        } else {\n            echo(greeting)\n        }\n    }\n}\n\nfun main(args: Array<String>) {\n    GreetCommand().main(args)\n}
\n\n

Este é o utilitário CLI Kotlin mais simples, que aceita um nome e uma flag opcional. Vamos executar:

\n\n
./gradlew run --args="Alex --uppercase"\n# Saída: OLÁ, ALEX!
\n\n

Apenas 30 linhas de código — e temos uma ferramenta de console funcional. Clikt gera automaticamente a ajuda, trata erros e suporta autocompletar para bash/zsh.

\n\n

Passo 3: Comandos em vários níveis (como no Git)

\n\n

Os verdadeiros aplicativos de console em Kotlin raramente consistem em um único comando. Vamos criar um utilitário para trabalhar com arquivos que suporta subcomandos:

\n\n
import com.github.ajalt.clikt.core.subcommands\n\nclass FileTool : CliktCommand(\n    name                

Blogs

Book Recommendations