我正在尝试将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"
}
}
答案 0 :(得分:0)
您确实需要将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
依赖项将包含在胖子中:
dependencies {
shadow "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"
}