如何分发 Kotlin CLI 应用程序?

Posted

技术标签:

【中文标题】如何分发 Kotlin CLI 应用程序?【英文标题】:How to distribute a Kotlin CLI application? 【发布时间】:2022-01-04 21:06:11 【问题描述】:

我在 Kotlin 中构建了一个小型机器人。

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

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

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

我做错了什么?

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

【问题讨论】:

如果您的项目可以公开获得,您能否分享一个链接? 【参考方案1】: 好消息:我的问题上发布的设置完美无缺。 坏消息:我的代码没有。

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

【讨论】:

以上是关于如何分发 Kotlin CLI 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

RabbitMQ简单应用の公平分发(fair dipatch)

用于二进制分发的 clang 编译器标志(通用 CPU)

Kotlin Multiplatform - 错误 ITMS-90171:无效的捆绑包结构

如何将整个 Vue 应用程序捆绑为单个 UMD 模块

给定 APK 文件,我如何检测应用程序是不是是用 Kotlin 编写的?

如何在 Kotlin 中关闭 Android 应用程序