Edited at

KotlinでSpigotプラグインを作るためのbuild.gradle

More than 1 year has passed since last update.


筆者環境

OS
IDE

macOS Sierra 10.12.2
IntelliJ IDEA CE


build.gradle


build.gradle

group 'com.MasahiroSaito.Spigot'

version '1.0-SNAPSHOT'

buildscript {
ext.kotlin_version = '1.0.5'

repositories {
mavenCentral()
maven {
name = "spigot-api"
url "https://hub.spigotmc.org/nexus/content/groups/public"
}
maven {
url "https://oss.sonatype.org/content/repositories/snapshots/"
}
}
dependencies {
classpath "net.md-5:bungeecord-chat:1.10-SNAPSHOT"
classpath group: 'org.spigotmc', name: 'spigot-api', version: '1.11-R0.1-SNAPSHOT'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}

apply plugin: 'java'
apply plugin: 'kotlin'

sourceCompatibility = 1.8

configurations {
embed
compile.extendsFrom(embed)
}

repositories {
mavenCentral()
maven {
name = "spigot-api"
url "https://hub.spigotmc.org/nexus/content/groups/public"
}
maven {
url "https://oss.sonatype.org/content/repositories/snapshots/"
}
}

dependencies {
compile "net.md-5:bungeecord-chat:1.10-SNAPSHOT"
compile group: 'org.spigotmc', name: 'spigot-api', version: '1.11-R0.1-SNAPSHOT'
embed "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}

jar {
from configurations.embed.collect { it.isDirectory() ? it : zipTree(it) }
}



解説


  • spigot-api のバージョンは作成するプラグインのバージョンによって変更する

  • プラグインの情報を適宜変更する


プラグインの group と version 設定

group 'com.MasahiroSaito.Spigot'

version '1.0-SNAPSHOT'

IDEA でプロジェクトを作成した時に入力したものが、そのまま記述されている。

プラグインのバージョンを変更する際は、version の中身を書き換える。

version はビルド後のファイル名に影響してくるため、前のバージョンを上書きしたくない場合は、ビルド前に記述を変えると良い。


ビルド後の jar に Kotlin ライブラリも同梱

configurations {

embed
compile.extendsFrom(embed)
}

dependencies {
compile "net.md-5:bungeecord-chat:1.10-SNAPSHOT"
compile group: 'org.spigotmc', name: 'spigot-api', version: '1.11-R0.1-SNAPSHOT'
embed "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}

jar {
from configurations.embed.collect { it.isDirectory() ? it : zipTree(it) }
}

ビルド後の jar に Kotlin ライブラリを同梱することで、Spigot サーバーにプラグインを導入する際に Kotlin ライブラリを導入する必要がなくなる。ただし、ファイルを大きくなるため、たくさんプラグインを作成する際は前提プラグインなどを作成し、そのプラグインにのみ同梱するなどの工夫は必要かもしれない。


ビルド時に必要な情報

buildscript {

ext.kotlin_version = '1.0.5'

repositories {
mavenCentral()
maven {
name = "spigot-api"
url "https://hub.spigotmc.org/nexus/content/groups/public"
}
maven {
url "https://oss.sonatype.org/content/repositories/snapshots/"
}
}
dependencies {
classpath "net.md-5:bungeecord-chat:1.10-SNAPSHOT"
classpath group: 'org.spigotmc', name: 'spigot-api', version: '1.11-R0.1-SNAPSHOT'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}


依存関係に必要なリポジトリ

repositories {

mavenCentral()
maven {
name = "spigot-api"
url "https://hub.spigotmc.org/nexus/content/groups/public"
}
maven {
url "https://oss.sonatype.org/content/repositories/snapshots/"
}
}


参考