提供: defeatedcrow mod wiki
移動先: 案内検索
(ページの作成:「=開発環境をカスタマイズする= build.gradleの内容を編集することで、開発及びビルドの環境をカスタム出来ます。 出来ることは...」)
 
76行目: 76行目:
  
 
===MODの基本情報===
 
===MODの基本情報===
<source lang="java">version = "1.0"
+
<source lang="groovy">version = "1.0"
 
group= "com.yourname.modid" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
 
group= "com.yourname.modid" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
 
archivesBaseName = "modid"</source>
 
archivesBaseName = "modid"</source>
93行目: 93行目:
 
 これを、まずこのように変更します。
 
 これを、まずこのように変更します。
  
<source lang="java">
+
<source lang="groovy">
 
dependencies {
 
dependencies {
     compile fileTree(dir: 'libs', include: '=.jar')
+
     compile fileTree(dir: 'libs', include: '*.jar')
 
}
 
}
 
</source>
 
</source>
120行目: 120行目:
 
 そこで、文字コードの設定をUTF-8に変更します。
 
 そこで、文字コードの設定をUTF-8に変更します。
  
<source lang="java">
+
<source lang="groovy">
 
tasks.withType(Jar) {
 
tasks.withType(Jar) {
 
     compileJava.options.encoding = 'UTF-8'
 
     compileJava.options.encoding = 'UTF-8'

2016年2月20日 (土) 11:14時点における版

開発環境をカスタマイズする

build.gradleの内容を編集することで、開発及びビルドの環境をカスタム出来ます。 出来ることはいろいろありますが、ここでは要求度の高そうなものについて説明していきます。

build.gradleの設定

デフォルトのbuild.gradleはこんな感じ。

buildscript {
    repositories {
        mavenCentral()
        maven {
            name = "forge"
            url = "http://files.minecraftforge.net/maven"
        }
        maven {
            name = "sonatype"
            url = "https://oss.sonatype.org/content/repositories/snapshots/"
        }
    }
    dependencies {
        classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT'
    }
}

apply plugin: 'forge'

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

minecraft {
    version = "1.7.10*10.13.4.1448-1.7.10"
    runDir = "eclipse"
}


dependencies {
    // you may put jars on which you depend on in ./libs
    // or you may define them like so..
    //compile "some.group:artifact:version:classifier"
    //compile "some.group:artifact:version"
     
    // real examples
    //compile 'com.mod*buildcraft:buildcraft:6.0.8:dev'  // adds buildcraft to the dev env
    //compile 'com.googlecode.efficient*java*matrix*library:ejml:0.24' // adds ejml to the dev env

    // for more info...}
    // &nolink(http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html)
    // &nolink(http://www.gradle.org/docs/current/userguide/dependency_management.html)
}

processResources
{
    // this will ensure that this task is redone when the versions change.
    inputs.property "version", project.version
    inputs.property "mcversion", project.minecraft.version

    // replace stuff in mcmod.info, nothing else
    from(sourceSets.main.resources.srcDirs) {
        include 'mcmod.info'
                
        // replace version and mcversion
        expand 'version':project.version, 'mcversion':project.minecraft.version
    }
        
    // copy everything else, thats not the mcmod.info
    from(sourceSets.main.resources.srcDirs) {
        exclude 'mcmod.info'
    }
}

 部分的にの変更・あるいは下部に新しい行を継ぎ足し で済む方法のみを、ここでは記述していきます。  他にも改変ポイントはあるのですが、今回は割愛。

MODの基本情報

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

 この部分はデフォルトのままでも動作はしますが、  archivesBaseNameは出力時のMODのパッケージ名、versionはバージョンを変更できるので、  MOD出力後に手作業でパッケージ名を変更するよりここで変更した方が楽です。

 groupは(ライブラリ自動DL用などで)mavenを利用するときに変更する部分のようです。  デフォルトの命名に習って、"com.作者名.MODID"としておけば良いんじゃないかと。

dependencyの設定

 中段あたりにあるdependenciesの部分では、  開発及びビルドに必要なライブラリを指定できます。

 これを、まずこのように変更します。

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
}

これは、「build.gradleのこのファイルと同じディレクトリ内に「libs」というフォルダがあるなら、 その中にある、拡張子が.jarのファイルをライブラリとしてコンパイル時に使用できる」という設定です。 更に、eclipse上でのビルドパスの指定なども自動で行ってくれるので、ライブラリに含まれるソースコードも開発に活用できます。

次に、実際にフォルダを作ります。
libs.PNG

使いたいライブラリ(deobf版のMODなど)がある場合はここで入れてしまってOK。 deobf版MODの場合、ここにライブラリとして入れれば、デバッグプレイ時にも導入された状態で起動できます。 私の場合は、自作MOD自体がお助けライブラリとして機能するため&デバッグプレイで使いたいため、 自作MODのdeobf版は大抵放り込んでいます。

※注意点として、開発環境の場合は実環境以上にバージョンあわせがシビアになるようです。
deobf版のバージョンを変えたら動かなくなった、Forgeを上げたら動かなくなった、というのが頻発したりします。
動くバージョンを根気よく探る気力も必要です。


文字コードを変更する

 デフォルトではソースコードやビルド時にはSJISが使われていますが、このままではソースコードに日本語を含んでいるとビルドできなくなります。  そこで、文字コードの設定をUTF-8に変更します。

tasks.withType(Jar) {
    compileJava.options.encoding = 'UTF-8'
}

tasks.withType(Jar) {
    compileApiJava.options.encoding = 'UTF-8'
}

上記の記述を、build.gradleの下部に追加して下さい。


build.gradle変更後

編集したらbuild.gradleを保存しましょう。 注意点:保存時の文字コードはSJISで保存するか、BOMなしの文字コードにしましょう。 BOMつきUTF-8等で保存してしまうと1行目にバケ文字が挿入されてしまい、正常に環境が作れなくなります。

保存後は、install.batをダブルクリック。 build successの文字がコンソールに出ていれば、build.gradleでの環境カスタムは完了です。

この後も、build.gradle変更後はinstall.batを叩かないと変更が反映されませんので、覚えておきましょう。

install.bat後、Eclipseを起動すれば、「libs」フォルダに入れていたdeobf版MODもプロジェクトに反映しているはずです。 こんな感じ。
library.PNG

Eclipseの設定変更

以下は日本語版の場合なので、日本語化していないものだと名称が異なると思います。

文字コードの変更

  • ウィンドウタブからの変更

ウィンドウ」タブ→設定 を開きます。 設定のうち、「一般」→「エディター」→「テキストエディター」→「スペル」を選択。   「エンコード」という項目があるので、そこでUTF-8を選んで設定を保存します。
encode.PNG

  • プロジェクトのプロパティからの変更

プロジェクトエクスプローラに表示されている「Minecraft」のプロジェクトを右クリック。 「プロパティー」を選択します。

ここで、「テキストファイルのエンコード」の項目がUTF-8になっていなければUTF-8を選択して保存しましょう。
encode2.PNG



文字コードの選択はこれでOKです。

ここまで設定すれば、日本語を含む自分のソースや和製MODが含まれていてもコンパイルできる環境が整います。