如何分发 Kotlin CLI 应用程序?

How to distribute a Kotlin CLI application?

我用 Kotlin 构建了一个小机器人。

它已完成,我可以从我的开发者工具中 运行 它。我正在使用 application 插件尝试分发,但我一直失败。

./gradlew run 运行 机器人符合预期。

我一直在寻找类似 ./gradlew installDist 的东西,然后只是 运行ning installationDir/bin/App(类似于 Ktor 应用程序)和 运行ning 应用程序。但是当我应该看到很多日志输出时,它只是成功退出而没有输出。

我做错了什么?

// gradle.build.kts
import org.jetbrains.kotlin.gradle.plugin.statistics.ReportStatisticsToElasticSearch.url
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
    kotlin("jvm") version "1.5.31"
    kotlin("plugin.serialization") version "1.5.31"
    application
}

group = "me.nanospicer"
version = "1.0"

repositories {
    mavenCentral()
    maven {
        url = uri("https://jitpack.io")
    }
}


tasks.withType<KotlinCompile>() {
    kotlinOptions.jvmTarget = "1.8"
}

application {
    mainClass.set("MainKt")
}

val ktor_version="1.6.5"
dependencies {
    implementation("ch.qos.logback:logback-classic:1.2.7")
    implementation("io.ktor:ktor-client-core:$ktor_version")
    implementation("io.ktor:ktor-client-cio:$ktor_version")
    implementation("io.ktor:ktor-client-serialization:$ktor_version")
    implementation("io.ktor:ktor-client-logging:$ktor_version")
    implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.1")
}
  • 好消息:针对我的问题发布的设置完美无缺。
  • 坏消息:我的代码没有。

我有一个服务器上不存在的文件,并且部分代码正在返回 null 因此该应用程序将在没有任何输出的情况下退出,因为它不会执行任何操作,因为该文件正在不存在。