そもそも、fatJarって?
サードパーティー製のライブラリなどを使った時に、そのライブラリも含み、全てを1つのjarファイルにしたもの(だと思っている)。
今回の環境
1つ目
・IntelliJ IDEA CommunityEdition 2016.3.4
・Forge 1.7.10-10.13.4.1614
・Forge Gradle 1.2
2つ目
・IntelliJ IDEA CommunityEdition 2016.3.4
・Forge 1.11.2-13.20.1.2386
・Forge Gradle 2.2-SNAPSHOT
どうやるの?
- build.gradleを開く
- 以下のソースを追加(もし、minecraft{}などが既にあった場合、そこに追記する形で)
- buildタスクを実行したらfatJarの完成!
※<>は書かないでください。
また、minecraft,configrations,dependencies,jarの順番はこのままでお願いします。
下記コードで「ここから」と「ここまで」の間は1.11.2の環境では消してください。
//ここから
minecraft {
srgExtra "PK: <そのライブラリのルートディレクトリ> <jarファイルにした時のパス>"
}
//ここまで
configurations{
shade
compile.extendsFrom shade
}
dependencies {
<compileをshadeに変更、詳しくは下で>
}
jar {
configurations.shade.each {dep ->
from(project.zipTree(dep)){
exclude 'META-INF', 'META-INF/**'
}
}
}
使用例(必要な部分のみ)
//ここから
minecraft {
srgExtra "PK: com/fasterxml/jackson/annotation com/fasterxml/jackson/annotation"
srgExtra "PK: com/fasterxml/jackson/core com/fasterxml/jackson/core"
srgExtra "PK: com/fasterxml/jackson/databind com/fasterxml/jackson/databind"
}
//ここまで
configurations{
shade
compile.extendsFrom shade
}
dependencies {
shade group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.9.0'
}
jar {
configurations.shade.each {dep ->
from(project.zipTree(dep)){
exclude 'META-INF', 'META-INF/**'
}
}
}