gpt4 book ai didi

java - 如何将 Kotlin 与 Bukkit/Spigot 插件和 Gradle 结合使用

转载 作者:行者123 更新时间:2023-12-02 04:51:41 24 4
gpt4 key购买 nike

我正在尝试使用 Kotlin 作为 Spigot 插件(版本 1.8.8),因为我发现 Kotlin 使用起来效率更高。但是,每当我尝试运行该插件时,都会收到此错误:

Caused by: java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics

我在网上查了一下,似乎我需要将 Kotlin jar 文件隐藏到我的插件中,有人可以告诉我如何做到这一点吗?

更新 在尝试下面的建议后,我仍然遇到相同的错误。这是我的 build.gradle:

plugins {
id 'java'
id 'org.jetbrains.kotlin.jvm' version '1.3.31'
id 'com.github.johnrengelman.shadow' version '4.0.2'
}

group 'me.graphicalcake95'
version '1.0.0'

sourceCompatibility = 1.8

repositories {
mavenCentral()
maven {
url 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/'
}
}

shadowJar {
baseName = 'shadow'
classifier = null
version = null
}

dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
compileOnly 'org.bukkit:bukkit:1.8.8-R0.1-SNAPSHOT'
shadow "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
}
compileKotlin {
kotlinOptions {
jvmTarget = "1.8"
}
}
compileTestKotlin {
kotlinOptions {
jvmTarget = "1.8"
}
}

最佳答案

您确实需要将 Kotlin 标准库隐藏到您的插件中。由于您使用的是 Gradle,因此可以使用 Shadow Plugin 来完成此操作它与 Shade 类似,但 Shade 仅适用于 Maven,因此它对您没有用处。

使用 Shadow 插件非常简单。首先应用插件本身:

plugins {
id 'com.github.johnrengelman.shadow' version '5.0.0'
}

然后你可以配置Shadow:

shadowJar {
baseName = 'shadow'
classifier = null
version = null
}

当您构建项目时,这将在您的构建文件夹中创建一个 shadow.jar 。应用 Shadow 插件后,您可以将 shadow 依赖项包含在 fat jar 中:

dependencies {
shadow "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"
}

关于java - 如何将 Kotlin 与 Bukkit/Spigot 插件和 Gradle 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56434280/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com