Kotlin DSLでSpigot/Paperプラグインをビルドする

这是我初次投稿,请多关照。
Paper-API的版本是1.18.x。(我认为在其他版本也可以稍微修改一下就可以实现)
由于使用Kotlin DSL进行构建,关于Spigot/Paper插件的示例很少。
如果使用Spigot-API,请逐步进行转换。

创建新项目

打开新项目创建界面,选择Gradle。由于Kotlin DSL的Gradle模板不存在,因此不使用Minecraft Dev插件。(据Issue显示,似乎正在努力解决这个问题但进展缓慢?)

Image from Gyazo

请根据上面的图示,在 Java 和 Kotlin DSL 的构建脚本中选择并勾选。如果想要用 Kotlin 编写插件的人,请同时在 Kotlin/JVM 上勾选。选择与所需 API 相匹配的 JDK 作为项目的 SDK。

Image from Gyazo

在这个区域,请随意做任何事情。无论什么都可以。

按下“完成”按钮后,项目将完成并开始构建。在开始之前,首先要启动Gradle的守护进程,请耐心等待。

改写建筑的周围

当构建完成后,将显示已应用语法高亮的构建脚本。我们可以编辑这个构建脚本(build.gradle.kts),以便开始使用API。

plugins {
    java
}

group = "com.github.jin-ini" // ここは指定したgroup id
version = "1.0-SNAPSHOT" // ここは指定したversion

repositories {
    mavenCentral()
}

// 以降のテスト関連のところ(junit系)は使わなければ消してしまっていいです。
dependencies {
    testImplementation("org.junit.jupiter:junit-jupiter-api:5.6.0")
    testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
}

tasks.getByName<Test>("test") {
    useJUnitPlatform()
}

由于无法构建Fat Jar,所以我们要安装插件。同时,我们还要使Paper-API可用,并指定使用toolchain进行构建。

plugins {
    java
+   id("com.github.johnrengelman.shadow") version "7.1.2"
}

group = "com.github.jin-ini"
version = "1.0-SNAPSHOT"

repositories {
    mavenCentral()
+   maven { url = uri("https://papermc.io/repo/repository/maven-public/") } // PaperのMavenリポジトリ
}

dependencies {
+   compileOnly("io.papermc.paper:paper-api:1.18.1-R0.1-SNAPSHOT") // Paper-API
    testImplementation("org.junit.jupiter:junit-jupiter-api:5.6.0")
    testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
}

+ java {
+     toolchain.languageVersion.set(JavaLanguageVersion.of(17))
+ }

tasks.getByName<Test>("test") {
    useJUnitPlatform()
}

由于Gradle版本可能过旧,请指定为最新版本。请从官方网站确认最新发布。

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
- distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
+ distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

请创建以下文件来将 Gradle 设为守护进程,以便无需等待启动。请在项目根目录下执行此操作。

org.gradle.daemon=true

到目前为止,使用Kotlin DSL在Paper插件中构建的准备工作已经完成。接下来,只需从执行配置中运行gradle shadowJar命令,就可以在build/libs/目录下获得项目名-all.jar文件。

结束

由于我还是个初学者,所以我认为这不是最佳实践。请尽量尝试其他方法吧。如果有更好的方法,请务必告诉我。

广告
将在 10 秒后关闭
bannerAds