Kotlin CLI 工具:从零开始编写控制台程序

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

为什么 Kotlin 是 CLI 工具的理想语言?

\n\n

当谈到创建控制台工具时,许多开发人员习惯性地选择 Python 或 Bash。但如果您已经熟悉 Kotlin(在我们的网站 pythonlib.ru 上,我们相信优秀的开发人员掌握多种语言),那么您就知道这种语言是多么简洁和富有表现力。使用 Kotlin 创建 CLI 工具 不仅仅是一种时尚,而是一种获得快速、类型安全且跨平台工具的真正方法。

\n\n

想象一下:您编写一个 Kotlin 控制台应用程序,它通过 GraalVM 或 Kotlin/Native 编译成 JAR 或原生二进制文件。它可以在任何地方运行——从 Linux 服务器到同事的 Windows 机器。同时,代码比 Java 短 2-3 倍,并且比 Python 安全得多。听起来很诱人?让我们开始吧。

\n\n

入门需要什么?

\n\n

要创建 Kotlin CLI,您至少需要:

\n
    \n
  • 已安装的 JDK 11+(推荐 17 或 21)
  • \n
  • IntelliJ IDEA(社区版就足够了)或任何文本编辑器
  • \n
  • Kotlin 基础知识(函数、类、集合)
  • 用于构建的 Gradle 或 Maven
\n\n

如果您还没有在控制台中使用过 Kotlin,请不要担心。我们将从空文件开始,逐步构建一个完整的工具,该工具可以发布并在 CI/CD 管道中使用。

\n\n

步骤 1:为 CLI 工具配置项目

\n\n

让我们创建一个简单的 Gradle 项目。以下是最小的 build.gradle.kts:

\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

请注意两个关键库:Clikt 和 Kotlinx CLI。第一个是用于创建 Kotlin CLI 工具 的最流行库。第二个是 JetBrains 的官方解决方案。在本文中,我们将使用 Clikt,因为它提供了更大的灵活性并且看起来更漂亮。

\n\n

步骤 2:编写第一个命令

\n\n

创建文件 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 = "向用户问好"\n) {\n    private val name: String by argument(\n        help = "用户名"\n    )\n\n    private val uppercase: Boolean by option(\n        "--uppercase", "-u",\n        help = "以大写形式输出名称"\n    ).flag()\n\n    override fun run() {\n        val greeting = "你好, $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

这是一个最简单的 Kotlin CLI 工具,它接受一个名称和一个可选标志。运行它:

\n\n
./gradlew run --args="阿列克谢 --uppercase"\n# 输出:你好, 阿列克谢!
\n\n

仅需 30 行代码——我们就拥有了一个可工作的控制台工具。Clikt 自动生成帮助信息、处理错误并支持 bash/zsh 的自动补全。

\n\n

步骤 3:多级命令(类似 Git)

\n\n

真正的 Kotlin 控制台应用程序 很少只包含一个命令。让我们创建一个用于处理文件的工具,它支持子命令:

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

博客

书籍推荐