📖
【Spigot】ローカルリポジトリにSpigotを配置することで依存を解決する
概要
Spigot/PaperMCでpluginを開発を行うときにspigot-apiへ依存を飛ばすことがほとんどです。
しかし、著作的な問題(nmsをパッケージに組み込めない)でbuild.gradleやpom.xmlに記述だけでは依存解決してくれません。
この記事ではmavenローカルリポジトリにspigotを配置することで依存関係を解決する方法を述べます。(自分もよく忘れるのでメモとしてまとめます。)
とても参考にさせてもらっています
Spigotをビルド
spigotをローカルでビルドを行えるBuildToolsはローカルリポジトリ配置をしてくれる機能も持っています。
BuildTools.jarをダウンロードし、実行にオプションをつけることで目的は果たせます。java -jar BuildTools.jar --rev [version] --remapped --generate-source --generate-docs
オプションの詳細は上記のbuildtoolsに書いています。
[verison]にはビルドしたいMinecraftのバージョンに書き換えてください。
Gradleで依存を飛ばす
GradleではmavenLocalも依存の検索対象にできます。
// build.gradle.kts
repositories {
mavenLocal() // mavenLocalも検索対象に含める
}
dependencies {
compileOnly("org.spigotmc:spigot:1.20.1-R0.1-SNAPSHOT") // 1.20.1の場合
}
それぞれ追加することで依存を飛ばすことに成功するはずです。
Discussion