依存関係¶
他の Mod やライブラリをプロジェクトに読み込むための設定は build.gradle の dependencies ブロックで行います。
依存関係の構成¶
Gradle では依存関係を dependencies ブロックで指定します。
指定の方法はいくつかあります。
| 構成 | 説明 | 用途の例 |
|---|---|---|
implementation |
コンパイル時と実行時の両方で依存関係を必要 | 必須の前提 Mod、常時使用するライブラリ |
compileOnly |
コンパイル時にのみ必要 | コンパイルにだけ必要な API、注釈プロセッサ |
runtimeOnly |
コンパイル時には不要、実行時にのみ必要 | 連携確認用の Mod(JEI など)、コンパイルコードには触れないが動作確認に必要な Mod |
annotationProcessor |
コンパイル時の注釈処理に使用される | Mixin などのプロセッサ |
マッピングについて¶
Minecraft の Mod は通常、難読化されています。
開発環境でこれらを扱うために、ForgeGradle は fg.deobf という特別なメソッドを提供しています。
これを依存関係の宣言時に噛ませることで、指定した Jar ファイルを開発環境のマッピングに合わせて再マッピングして読み込んでくれます。
Mod の依存関係を追加する¶
CurseMaven を使用する¶
CurseMaven は、CurseForge 上のファイルを Maven 依存関係として簡単に扱えるようにする非公式サービスです。
-
リポジトリの追加
repositoriesブロックに以下を追加します。Info
content指定はなくても良いですが、Cursemavenへの無駄なリクエストを減らすことができます。
-
依存関係の記述 フォーマット:
curse.maven:<description>-<projectID>:<fileID>- description: 任意の識別用文字列(実際の解決には使われません)
- projectID: CurseForge プロジェクト ID (About Project 欄などに記載)
- fileID:
Filesタブで特定のファイルを開いた際の URL 末尾の数字
dependencies { // JEI の例 (Project ID: 238222, File ID: 4712866) compileOnly fg.deobf("curse.maven:jei-238222:4712866") runtimeOnly fg.deobf("curse.maven:jei-238222:4712866") }以上のように記述できますが、手間がかかります。
Curseforgeでファイルを開くと、
Curse Maven Snippetという欄に依存関係として使用する記述があります。(例: JEI)これをそのままコピーすると楽です。
Modrinth Maven を使用する¶
Modrinth も公式で Maven リポジトリを提供しています。(Modrinth Maven)
-
リポジトリの追加
-
依存関係の記述
フォーマット:
maven.modrinth:<projectID>:<version>- ProjectID: プロジェクトのID。URLにある。
- Version: バージョン、ファイルを開いて
Version numberの欄にある
例: JEI
ローカルの Jar ファイルを使用する¶
Maven リポジトリに公開されていない Mod を開発環境に入れたい場合などは、プロジェクト内のフォルダから読み込むこともできます。
-
プロジェクトルートに
libsフォルダを作成し、そこに.jarファイルを入れます。 -
リポジトリの設定
3.dependenciesに以下のように記述します。group:name:versionの形式である必要があります。groupは何でも良いので、ここではblankとしています。ファイル名は
name-version.jarの形式になっている必要があります。