提供: Minecraft Modding Wiki
この編集を取り消せます。
下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
1行目: | 1行目: | ||
+ | {{stb}} | ||
MinecraftForge9.11.1.960以降での開発環境構築手順です。 | MinecraftForge9.11.1.960以降での開発環境構築手順です。 | ||
4行目: | 5行目: | ||
*MinecraftForgeのソースファイル | *MinecraftForgeのソースファイル | ||
**http://files.minecraftforge.net/ から Mdk をダウンロード | **http://files.minecraftforge.net/ から Mdk をダウンロード | ||
− | **Forge-1.8-11.14.4 以前は | + | **Forge-1.8-11.14.4 以前は ''Src''' 。 |
− | |||
− | |||
*JDK(JavaDevelopmentKit) | *JDK(JavaDevelopmentKit) | ||
**http://www.oracle.com/technetwork/java/javase/downloads/index.html からPCに合わせてダウンロード | **http://www.oracle.com/technetwork/java/javase/downloads/index.html からPCに合わせてダウンロード | ||
21行目: | 20行目: | ||
===手順=== | ===手順=== | ||
;IDEAの場合 | ;IDEAの場合 | ||
− | :#Import | + | :#Import Projectからbuild.gradleを開く |
− | |||
;その他の場合 | ;その他の場合 | ||
− | |||
:#gradlewファイルが存在するディレクトリで<source lang="winbatch">gradlew setupDecompWorkspace</source>をシェル上で実行する。 | :#gradlewファイルが存在するディレクトリで<source lang="winbatch">gradlew setupDecompWorkspace</source>をシェル上で実行する。 | ||
:#しばらく待ち、「BUILD SUCCESSFUL」と表示されれば成功。 | :#しばらく待ち、「BUILD SUCCESSFUL」と表示されれば成功。 | ||
:##「BUILD FAILURE」と表示された場合は<source lang="winbatch">gradlew --refresh-dependencies</source>を実行の後やり直す。 | :##「BUILD FAILURE」と表示された場合は<source lang="winbatch">gradlew --refresh-dependencies</source>を実行の後やり直す。 | ||
:#Eclipseの場合は、<source lang="winbatch">gradlew eclipse</source>も併せて実行し、生成されるファイルからプロジェクトを開く。 | :#Eclipseの場合は、<source lang="winbatch">gradlew eclipse</source>も併せて実行し、生成されるファイルからプロジェクトを開く。 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
===マルチプロジェクトにする場合=== | ===マルチプロジェクトにする場合=== | ||
複数のMODを同じワークスペースで開発する場合のみ必要な工程です。 | 複数のMODを同じワークスペースで開発する場合のみ必要な工程です。 | ||
− | < | + | # <div>build.gradleファイルを適当なテキストエディタで開き、build.gradle内の以下の部分 |
− | + | <source lang="groovy"> | |
− | <source lang="groovy">apply plugin: ... | + | apply plugin: ... |
version = "1.0" | version = "1.0" | ||
50行目: | 42行目: | ||
mappings = ... | mappings = ... | ||
− | }</source> | + | } |
+ | </source> | ||
を、次のように変更する。 | を、次のように変更する。 | ||
− | <source lang="groovy">allprojects { | + | <source lang="groovy"> |
+ | allprojects { | ||
apply plugin: ... | apply plugin: ... | ||
64行目: | 58行目: | ||
archivesBaseName = project.projectDir.name | archivesBaseName = project.projectDir.name | ||
} | } | ||
− | </source> | + | </source></div> |
− | </ | + | #build.gradleを同じディレクトリに「settings.gradle」ファイルを作成する。 |
− | + | #「settings.gradle」を開いて、以下のように記述し保存。 | |
− | + | #;Eclipseの場合 | |
− | ;Eclipseの場合 | + | #:<source lang="groovy">includeFlat 'Project1','Project2'</source> |
− | :<source lang="groovy">includeFlat 'Project1','Project2'</source> | + | #:この時、Project1ディレクトリとProject2ディレクトリは以下に示すようにワークスペースと“同じ階層”に置くこと |
− | :この時、Project1ディレクトリとProject2ディレクトリは以下に示すようにワークスペースと“同じ階層”に置くこと | + | #:親ディレクトリ |
− | :親ディレクトリ | + | #:::ワークスペース/ |
− | ::ワークスペース/ | + | #:::Project1/ |
− | ::Project1/ | + | #:::Project2/ |
− | ::Project2/ | + | #;IDEAの場合 |
− | ;IDEAの場合 | + | #:<source lang="groovy">include 'Project1','Project2'</source> |
− | :<source lang="groovy">include 'Project1','Project2'</source> | + | #:この時、Project1ディレクトリとProject2ディレクトリは以下に示すようにワークスペース“内”に置くこと |
− | :この時、Project1ディレクトリとProject2ディレクトリは以下に示すようにワークスペース“内”に置くこと | + | #:親ディレクトリ |
− | :親ディレクトリ | + | #:::ワークスペース/ |
− | ::ワークスペース/ | + | #:::::Project1/ |
− | :::Project1/ | + | #:::::Project2/ |
− | :::Project2/ | + | #各プロジェクトのディレクトリ内に「build.gradle」ファイルを作成する。 |
− | + | #「build.gradle」を開いて、以下のように記述し保存。 | |
− | + | #::<span><source lang="groovy"> | |
− | |||
− | <source lang="groovy"> | ||
sourceSets.main { | sourceSets.main { | ||
java.srcDirs project.projectDir.name | java.srcDirs project.projectDir.name | ||
resources.srcDirs project.projectDir.name | resources.srcDirs project.projectDir.name | ||
} | } | ||
− | version = "1.0"//バージョン</source> | + | version = "1.0"//バージョン</source></span> |
− | ;ソースに日本語が記述されている場合 | + | #;ソースに日本語が記述されている場合 |
− | : | + | #:「build.gradle」に以下を追加。 |
− | ;APIに日本語が記述されている場合 | + | #:::<source lang="groovy">tasks.withType(Jar) {compileJava.options.encoding = 'UTF-8'}</source> |
− | : | + | #;APIに日本語が記述されている場合 |
− | ;依存関係がある場合、外部jarをビルド時に読ませたい場合 | + | #:「build.gradle」に以下を追加。 |
− | :# | + | #:::<source lang="groovy">tasks.withType(Jar) {compileApiJava.options.encoding = 'UTF-8'}</source> |
− | :#そのプロジェクトのディレクトリ内に「lib」ディレクトリを作成。 | + | #;依存関係がある場合、外部jarをビルド時に読ませたい場合 |
− | ;マルチプロジェクト内の他のプロジェクトに依存している場合 | + | #:#「build.gradle」に以下を追加。 |
− | : | + | <source lang="groovy"> |
− | + | dependencies { compile fileTree(dir: 'lib', include: '*.jar') } | |
− | + | </source> | |
+ | #:#そのプロジェクトのディレクトリ内に「lib」ディレクトリを作成。 | ||
+ | #;マルチプロジェクト内の他のプロジェクトに依存している場合 | ||
+ | #:「build.gradle」に以下を追加。 | ||
+ | #:<source lang="groovy">dependencies { compile project(':ProjectName')}</source> | ||
以上のようにすると、以下のようになる。 | 以上のようにすると、以下のようになる。 | ||
;Eclipseの場合 | ;Eclipseの場合 | ||
:ワークスペース/ | :ワークスペース/ | ||
− | ::src/ | + | :::.gradle/ |
− | ::build.gradle | + | :::src/ |
− | ::settings.gradle | + | :::build.gradle |
+ | :::settings.gradle | ||
:Project1/ | :Project1/ | ||
− | ::src/ | + | :::.gradle/ |
− | ::build.gradle | + | :::src/ |
+ | :::build.gradle | ||
:Project2/ | :Project2/ | ||
− | ::src/ | + | :::.gradle/ |
− | ::build.gradle | + | :::src/ |
+ | :::build.gradle | ||
;IDEAの場合 | ;IDEAの場合 | ||
:ワークスペース/ | :ワークスペース/ | ||
− | :: | + | :::.gradle/ |
− | : | ||
− | |||
− | |||
:::src/ | :::src/ | ||
:::build.gradle | :::build.gradle | ||
− | ::Project2/ | + | :::settings.gradle |
+ | :::Project1/ | ||
+ | :::::.gradle/ | ||
+ | :::::src/ | ||
+ | :::::build.gradle | ||
+ | :::Project2/ | ||
+ | :::::.gradle/ | ||
:::src/ | :::src/ | ||
:::build.gradle | :::build.gradle | ||
130行目: | 132行目: | ||
==MOD== | ==MOD== | ||
===開発=== | ===開発=== | ||
− | + | この環境下でMODをビルドしたい場合、単独プロジェクトの場合は、開発環境の作業ディレクトリに<br /> | |
− | + | src/main/java<br /> | |
+ | という階層でディレクトリを作成し、javaディレクトリ内に、自身のMODのパッケージに有ったディレクトリ構成でsourceファイルを配置すればよい。<br /> | ||
+ | 画像や音声ファイル等のリソースファイルは<br /> | ||
+ | src/main/resources/assets<br /> | ||
+ | という階層でディレクトリを作成し、assetsディレクトリ内に指定されたディレクトリ構成でファイルを配置すればよい。 | ||
+ | リソースファイルの配置の仕方は、[[1.7のリソース(テクスチャ・サウンド・言語ファイル等)の置き場所]]を参照のこと。 | ||
+ | *マルチプロジェクトの場合 | ||
+ | 各プロジェクトディレクトリ内に、上のディレクトリ構成でファイルを配置する。 | ||
===デバッグ=== | ===デバッグ=== | ||
作成したMODのデバッグは、ForgeGradleを使うことで、1.6.4以前のMCP環境と同様に行うことが出来る。 | 作成したMODのデバッグは、ForgeGradleを使うことで、1.6.4以前のMCP環境と同様に行うことが出来る。 | ||
− | + | *単独プロジェクトの場合 | |
− | : | + | 作業ディレクトリ内に新規テキストファイルを作成し、中に以下のコードを書いて保存。ファイル名を「RunClient.bat」に変更する。 |
− | :: | + | <source lang="winbatch"> |
− | + | call gradlew runClient | |
− | + | pause | |
− | + | </source> | |
− | + | 作業ディレクトリ内に新規テキストファイルを作成し、中に以下のコードを書いて保存。ファイル名を「RunServer.bat」に変更する。 | |
− | + | <source lang="winbatch"> | |
− | + | call gradlew runServer | |
− | + | pause | |
− | + | </source> | |
− | + | *'''build.gradle内のrunDirに指定したディレクトリ(MDKのデフォルトでは"run")がプロジェクトディレクトリ以下に存在しないと,runClientおよびrunServerがエラーで実行できないので注意.''' | |
− | + | *マルチプロジェクトの場合 | |
− | + | 作業ディレクトリ(プロジェクトディレクトリではない)内に新規テキストファイルを作成し、中に以下のコードを書いて保存。ファイル名を「RunClient.bat」に変更する。 | |
− | + | <source lang="winbatch"> | |
− | + | call gradlew :<PROJECT NAME>:runClient | |
− | + | pause | |
+ | </source> | ||
+ | 作業ディレクトリ(プロジェクトディレクトリではない)内に新規テキストファイルを作成し、中に以下のコードを書いて保存。ファイル名を「RunServer.bat」に変更する。 | ||
+ | <source lang="winbatch"> | ||
+ | call gradlew :<PROJECT NAME>:runServer | ||
+ | pause | ||
+ | </source> | ||
+ | *IDE上でデバッグする場合 | ||
+ | Eclipse で開発する場合は、プロジェクトファイルを開き、起動クラスの設定を行う | ||
+ | *起動クラスの設定はクライアントの場合GradleStart、サーバはGradleStartServer。プログラムの引数は空で良いが、「-username=<任意の文字列>」を指定しておくと、マルチプレイのテスト時にOPを付与しなおす必要がなくなる。 | ||
+ | *VM への引数として「-Xincgc -Xmx1024M -Xms1024M」を指定。(非力なマシンでデバッグする場合は適宜変更のこと) | ||
+ | *作業ディレクトリに「${workspace_loc:(プロジェクト名)/jars}」を指定。GUI からワークスペースの jars ディレクトリを指定しても良い。 | ||
+ | *ワールド情報は jars/save の中に生成されるので、既存ワールドは適宜このディレクトリにコピーすること。一度ゲームを起動すれば jars ディレクトリ内に必要ディレクトリが作成される。 | ||
+ | ビルドパスの修正 | ||
+ | *ForgeSrcのパスが不足している場合、C:\Users\ユーザー名\.gradle\caches\minecraft\net\minecraftforge\forge\(Forgeバージョン) に forgeSrc-(Forgeバージョン).jar が存在する。添付ソースは末尾が「-source.jar」のファイルなので一緒に設定すると良い | ||
+ | |||
+ | IDEAで開発する場合、起動構成は開発ディレクトリ上でのコマンドプロンプトで「gradlew genIntellijRuns」と実行すれば自動的に構成できる。 | ||
===リリース=== | ===リリース=== | ||
− | + | リリースビルド用バッチファイルの作成<br /> | |
− | + | (シングルプロジェクト用) | |
− | + | *作業ディレクトリ内に新規テキストファイルを作成し、中に以下のコードを書いて保存。ファイル名を「Release.bat」に変更する。 | |
− | + | <source lang="text"> | |
− | + | call gradlew build --info > buildlog.txt 2>&1 | |
− | + | </source> | |
− | + | *今後、コンパイルを行う時はこの「Release.bat」を実行すれば、MCPでの「recompile.bat」「reobfuscate_srg.bat」を同時に行ってくれる | |
− | + | *コンパイル中のログは、「buildlog.txt」に出力される | |
− | + | *コンパイルされたclassファイルは、\build\libsディレクトリに圧縮された状態で出力される | |
− | + | **「build.gradle」を弄っていなければ、「modid-1.0.jar」として出力されている。"archivesBaseName"-"version".jarという書式 | |
− | + | ||
− | + | (マルチプロジェクト用) | |
+ | *作業ディレクトリ内に新規テキストファイルを作成し、中に以下のコードを書いて保存。ファイル名を「Release-<ProjectName>.bat」に変更する。 | ||
+ | <source lang="text"> | ||
+ | call gradlew :<ProjectName>:build --info > build-<ProjectName>-log.txt 2>&1 | ||
+ | </source> | ||
+ | *今後、<ProjectName>のプロジェクトのコンパイルを行う時はこの「Release-<ProjectName>.bat」を実行すれば、MCPでの「recompile.bat」「reobfuscate_srg.bat」を同時に行ってくれる | ||
+ | *コンパイル中のログは、「build-<ProjectName>-log.txt」に出力される | ||
+ | *コンパイルされたclassファイルは、\build\libsディレクトリに圧縮された状態で出力される | ||
+ | **マルチプロジェクト用「build.gradle」を弄っていなければ、「<ProjectName>-1.0.jar」として出力されている。"<ProjectName>"-"version".jarという書式 | ||
==Forgeのアップデート== | ==Forgeのアップデート== | ||
Forgeの新しいビルドがアップデートされた時に、以下のようにして、開発環境のForgeをアップデートすることが出来る。 | Forgeの新しいビルドがアップデートされた時に、以下のようにして、開発環境のForgeをアップデートすることが出来る。 | ||
− | + | *「build.gradle」ファイルを開く。 | |
− | + | *中程のminecraftブロック内の“version”を最新のビルドナンバーに書き換え、保存する。 | |
− | + | *「install.bat」を実行。 | |
+ | <del>(注意)マルチプロジェクトをしている場合は、setupDevWorkspaceとsetupDecompWorkspaceを全てのプロジェクトで自動で行うが、setupDecompWorkspaceは大元のプロジェクトで行えば十分なので、「install.bat」の中身の「setupDecompWorkspace」を「:setupDecompWorkspace」に置き換えたほうが、作業が捗り、decomp時のJava heapエラーに悩まされることもなくなる。</del> | ||
+ | (1.7.10以降なら、そのままでも重複タスクはスキップされるので、Java heap エラーは起きにくくなった。) | ||
==動画== | ==動画== | ||
188行目: | 223行目: | ||
===参考サイト=== | ===参考サイト=== | ||
− | + | [http://forum.minecraftuser.jp/viewtopic.php?f=21&t=9494&start=320 非公式フォーラム]<br /> | |
− | + | [http://reginn666.hatenablog.com/entry/2013/12/25/031356 IDEA+Gradleでわいわい]<br /> | |
− | + | [http://qiita.com/reginn666/items/d26717cf06ca17eb072c IntelliJ IDEAでModding]<br /> | |
− | + | [http://qiita.com/reginn666/items/b9f4a0a9f647d7034210 ForgeGradle+IDEAでマルチプロジェクト] | |
− | |||
− | |||
<comments /> | <comments /> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
---- | ---- | ||
* 当たり前ですが、install.bat実行時に対応するバージョンのminecraftの.jarが無いと失敗します。実行前に一度でも対応バージョンのminecraftを起動しておく旨を記載した方がよろしいかと --[[特別:投稿記録/122.251.218.248|122.251.218.248]] 2016年12月14日 (水) 18:09 (JST) | * 当たり前ですが、install.bat実行時に対応するバージョンのminecraftの.jarが無いと失敗します。実行前に一度でも対応バージョンのminecraftを起動しておく旨を記載した方がよろしいかと --[[特別:投稿記録/122.251.218.248|122.251.218.248]] 2016年12月14日 (水) 18:09 (JST) |