提供: Minecraft Modding Wiki
移動先: 案内検索
(gradleのバージョンアップに伴う変更点を反映)
(IDE)
40行目: 40行目:
 
インストール用バッチファイルの作成
 
インストール用バッチファイルの作成
 
*ディレクトリ内に新規テキストファイルを作成し、中に以下のコードを書いて保存。ファイル名を「Install.bat」に変更して完成。
 
*ディレクトリ内に新規テキストファイルを作成し、中に以下のコードを書いて保存。ファイル名を「Install.bat」に変更して完成。
 +
(IDEを使わないでデバッグする人用)
 +
<source lang="text">
 +
call gradlew setupDevWorkspace setupDecompWorkspace
 +
</source>
 
(Eclipse用)
 
(Eclipse用)
 
<source lang="text">
 
<source lang="text">

2014年9月13日 (土) 21:44時点における版

この記事は執筆中です。加筆してくださる人を募集しています。

Minecraft1.7.2以降で、MinecraftForge10.12.0.967以降を導入する場合の手順です。

動作確認
Minecraft1.7.2 Forge10.12.0.???
  • 動作の確認は基本的にRecommended[推奨版]のみ。Latest[最新版]はForge自体の動作が保証されていません。
  • Forgeのダウンロードはこちらから。


解説動画(英語)

以前のバージョンでの手順

必要なもの


前準備

  • JDKのダウンロード、およびインストール
  • MinecraftForgeSourceのダウンロード、および解凍

環境構築手順(install.bat作成まで)

Forge の src を展開する gradlew.batをメモ帳等で開き、JDKのパスをショートネームで追記しておく(12~18行目あたりのset ***が並んでる付近でよい)

  • set JAVA_HOME=C:\PROGRA~1\Java\jdk1.7.0_51
  • ショートネームがわからなければ、コマンドプロンプトで「dir /x C:\」と打てば表示される。「Program Files」は「PROGRA~1」など

インストール用バッチファイルの作成

  • ディレクトリ内に新規テキストファイルを作成し、中に以下のコードを書いて保存。ファイル名を「Install.bat」に変更して完成。

(IDEを使わないでデバッグする人用)

call gradlew setupDevWorkspace setupDecompWorkspace

(Eclipse用)

call gradlew setupDevWorkspace setupDecompWorkspace eclipse
pause

(intellij IDEA用)

call gradlew setupDevWorkspace setupDecompWorkspace idea
pause

(IDEAは標準でGradleファイルの読み込みができるので、バッチファイルを作る必要はそれほどない。) Install.batを実行する。暫く待つと ディレクトリ内に必要なファイルが生成される。

  • 「BUILD SUCCESSFUL」が表示されていれば成功。
  • 失敗していたら「gradlew --refresh-dependencies」を実行させて依存ファイルの再作成を行わせ、再度install.batを実行してみること。

build.gradleファイルの編集

複数のMODを同じワークスペースで開発する場合のみ必要な工程です。

  • ディレクトリ内にあるbuild.gradleファイルを適当なテキストエディタで開く
    • build.gradle内の以下の部分
apply plugin: 'forge'

version = "1.0"
group= "com.yourname.modid" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "modid"

minecraft {
    version = "1.7.2-10.12.0.1024"//DLした時のForgeのバージョン
    assetDir = "eclipse/assets"
}

を、次のように変更する。

allprojects {
    apply plugin: 'forge'

    minecraft {
        version = "1.7.2-10.12.0.1024"
	runDir = "eclipse/assets"
    }

    version = "1.0"//各プロジェクトで指定するだろうし、無くてもよい。

    archivesBaseName = project.projectDir.name
}
  • ディレクトリ内に新規テキストファイルを作成し、ファイル名を「settings.gradle」に変更。
  • 「settings.gradle」を開いて、以下のように記述し保存。
  • (Eclipseの場合)includeFlat 'Project1','Project2'
    • この時、Project1フォルダとProject2フォルダは作業しているディレクトリと“同じ階層”に置くこと

作業フォルダ
Project1
Project2

  • (IDEAの場合)include 'Project1','Project2'
    • この時、Project1フォルダとProject2フォルダは作業しているディレクトリ“内”に置くこと

作業フォルダ
|-Project1
|-Project2

  • 各プロジェクトのディレクトリ内に新規テキストファイルを作成し、「build.gradle」という名称に変更。
  • 「build.gradle」を開いて、以下のように記述し保存。
sourceSets.main {
    java.srcDirs project.projectDir.name
    resources.srcDirs project.projectDir.name
}

version = "1.0"//各プロジェクトのバージョン
}
  • project.projectDir.nameは各プロジェクトのディレクトリに置き換えること
  • ExampleModと同じ構成にする場合は以下の通り。
sourceSets.main {
    java.srcDirs 'src/main/java'
    resources.srcDirs 'src/main/resources'
}

version = "1.0"//各プロジェクトのバージョン
}
  • ソースファイル内に日本語が記述されている場合は、「build.gradle」に以下を追加。
tasks.withType(Jar) {compileJava.options.encoding = 'UTF-8'}
  • 依存関係がある場合、外部jarをビルド時に読ませたい場合は、「build.gradle」に以下を追加。
    そして、そのプロジェクトのディレクトリ内に「lib」フォルダを作成。
dependencies { compile fileTree(dir: 'lib', include: '*.jar') }
  • マルチプロジェクト内の他のプロジェクトに依存している場合は、「build.gradle」に以下を追加。
dependencies { compile project(':ProjectName')}
  • 以上のファイルを配置すると、以下のようになる。

Eclipse
作業フォルダ
|-.gradleフォルダ
|-srcフォルダ
|-build.gradle
|-settings.gradle
Project1
|-.gradleフォルダ
|-srcフォルダ
|-build.gradle
Project2
|-.gradleフォルダ
|-srcフォルダ
|-build.gradle
IDEA
作業フォルダ
|-.gradleフォルダ
|-srcフォルダ
|-build.gradle
|-settings.gradle
|-Project1
 |-.gradleフォルダ
 |-srcフォルダ
 |-build.gradle
|-Project2
 |-.gradleフォルダ
 |-srcフォルダ
 |-build.gradle

MODのリリース

リリースビルド用バッチファイルの作成

  • ディレクトリ内に新規テキストファイルを作成し、中に「gradlew build --info > buildlog.txt 2>&1」と書いて保存。ファイル名を「Release.bat」に変更。
  • 今後、コンパイルを行う時はこの「Release.bat」を実行すれば、MCPでの「recompile.bat」「reobfuscate_srg.bat」を同時に行ってくれる
  • コンパイル中のログは、「buildlog.txt」に出力される
  • コンパイルされたclassファイルは、\build\libsディレクトリに圧縮された状態で出力される
    • 「build.gradle」を弄っていなければ、「modid-1.0.jar」として出力されている。"archivesBaseName"-"version".jarという書式

Eclipse で開発する場合は、プロジェクトファイルを開き、起動クラスの設定を行う 起動クラスの設定は*.launchwrapper.Launch、プログラムの引数として「--version 1.6 --tweakClass cpw.mods.fml.common.launcher.FMLTweaker」を指定。

  • VM への引数として「-Xincgc -Xmx1024M -Xms1024M」を指定。
  • 作業ディレクトリに「${workspace_loc:(プロジェクト名)/jars}」を指定。GUI からワークスペースの jars ディレクトリを指定しても良い。
  • ワールド情報は jars/save の中に生成されるので、既存ワールドは適宜このディレクトリにコピーすること。一度ゲームを起動すれば jars ディレクトリ内に必要ディレクトリが作成される。

サーバ起動時のクラスは net.minecraft.server.MinecraftServer。 ビルドパスの修正

  • ForgeSrcのパスが不足している場合、C:\Users\ユーザー名\.gradle\caches\minecraft\net\minecraftforge\forge\1.7.2-10.12.0.ビルド番号 に forgeSrc-1.7.2-10.12.0.ビルド番号.jar が存在する。添付ソースは末尾が「-source.jar」のファイルなので一緒に設定すると良い

IDEAで開発する場合、起動構成は開発ディレクトリ上でのコマンドプロンプトで「gradlew genIntellijRuns」と実行すれば自動的に構成できる。

Forgeのアップデート

Forgeの新しいビルドがアップデートされた時に、以下のようにして、開発環境のForgeをアップデートすることが出来る。

  • 「build.gradle」ファイルを開く。
  • 中程のminecraftブロック内の“version”を最新のビルドナンバーに書き換え、保存する。
  • 「install.bat」を実行。

(注意)マルチプロジェクトをしている場合は、setupDevWorkspaceとsetupDecompWorkspaceを全てのプロジェクトで自動で行うが、setupDecompWorkspaceは大元のプロジェクトで行えば十分なので、「install.bat」の中身の「setupDecompWorkspace」を「:setupDecompWorkspace」に置き換えたほうが、作業が捗り、decomp時のJava heapエラーに悩まされることもなくなる。

参考:非公式フォーラム
他参考サイト
IDEA+Gradleでわいわい
IntelliJ IDEAでModding
ForgeGradle+IDEAでマルチプロジェクト


自分のコメントを追加
Minecraft Modding Wikiはすべてのコメントを歓迎します。匿名で投稿したくない場合は、アカウント作成またはログインしてください。無料です。