如何分发一个 Kotlin 命令行应用程序?

4

我使用Kotlin编写了一个小型的机器人。

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

./gradlew run正常运行机器人。

我想要像Ktor应用程序一样,执行./gradlew installDist然后只需运行installationDir/bin/App就可以运行该应用程序。但当我应该看到大量日志输出时,它只是成功退出而没有输出。

我做错了什么?

// 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")
}

如果您的项目已经公开发布,能否请您分享一个链接给我呢? - Aleksei Tirman
1个回答

0
  • 好消息:我在问题中发布的设置完美运行。
  • 坏消息:我的代码没有。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接