📖

【Spigot】ローカルリポジトリにSpigotを配置することで依存を解決する

2023/09/02に公開

概要

Spigot/PaperMCでpluginを開発を行うときにspigot-apiへ依存を飛ばすことがほとんどです。
しかし、著作的な問題(nmsをパッケージに組み込めない)でbuild.gradleやpom.xmlに記述だけでは依存解決してくれません。
この記事ではmavenローカルリポジトリにspigotを配置することで依存関係を解決する方法を述べます。(自分もよく忘れるのでメモとしてまとめます。)

とても参考にさせてもらっています
https://naari.hatenablog.com/entry/2022/03/22/004725

Spigotをビルド

spigotをローカルでビルドを行えるBuildToolsはローカルリポジトリ配置をしてくれる機能も持っています。
https://www.spigotmc.org/wiki/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