[Forge 1.12]recompileMC Failed

お久しぶりですこんにちは。唐突にMinecraft Moddingな記事になるんですが、1.12の開発環境を整えるのに躓いたところを簡単に記事にします。

環境整えるにはまず以下のコマンドを実行するのは同然なのですが、recompileMCの部分でコンパイルエラーが発生するんですよね。

gradlew setupDecompWorkspace

発生したエラーは以下。

[ant:javac] e:\work\forge-1.12-14.21.0.2334-mdk\build\tmp\recompileMc\sources\net\minecraftforge\client\model\b3d\B3DModel.java:478: エラー: 不適合な型: 推論変数Kには、不適合な境界があります
[ant:javac]             else if(bone != null) node = Node.create(name, pos, scale, rot, nodes, new Bone(bone));
[ant:javac]                                                     ^
[ant:javac]     等価制約: Bone
[ant:javac]     上限: IKind<CAP#1>,IKind<K>
[ant:javac]   Kが型変数の場合:
[ant:javac]     メソッド <K>create(String,Vector3f,Vector3f,Quat4f,List<Node<?>>,K)で宣言されているKはIKind<K>を拡張します
[ant:javac]   CAP#1が新しい型変数の場合:
[ant:javac]     CAP#1は?のキャプチャからIKind<CAP#1>を拡張します
[ant:javac] e:\work\forge-1.12-14.21.0.2334-mdk\build\tmp\recompileMc\sources\net\minecraftforge\client\model\b3d\B3DModel.java:479: エラー: 不適合な型: 推論変数Kには、不適合な境界があります
[ant:javac]             else node = Node.create(name, pos, scale, rot, nodes, new Pivot());
[ant:javac]                                    ^
[ant:javac]     等価制約: Pivot
[ant:javac]     上限: IKind<CAP#1>,IKind<K>
[ant:javac]   Kが型変数の場合:
[ant:javac]     メソッド <K>create(String,Vector3f,Vector3f,Quat4f,List<Node<?>>,K)で宣言されているKはIKind<K>を拡張します
[ant:javac]   CAP#1が新しい型変数の場合:
[ant:javac]     CAP#1は?のキャプチャからIKind<CAP#1>を拡張します
[ant:javac] e:\work\forge-1.12-14.21.0.2334-mdk\build\tmp\recompileMc\sources\net\minecraftforge\fml\common\registry\ObjectHolderRef.java:117: エラー: 不適合な型: 推論型が等価制約に適合しません
[ant:javac]                 registry = PersistentRegistry.ACTIVE.getRegistry((Class<IForgeRegistryEntry>) type);
[ant:javac]                                                                 ^
[ant:javac]     推論: CAP#1
[ant:javac]     等価制約: CAP#1,IForgeRegistryEntry
[ant:javac]   CAP#1が新しい型変数の場合:
[ant:javac]     CAP#1は?のキャプチャからIForgeRegistryEntry<CAP#1>を拡張します
[ant:javac] 注意:一部の入力ファイルは非推奨のAPIを使用またはオーバーライドしています。
[ant:javac] 注意:詳細は、-Xlint:deprecationオプションを指定して再コンパイルしてください。
[ant:javac] 注意:入力ファイルの操作のうち、未チェックまたは安全ではないものがあります。
[ant:javac] 注意:詳細は、-Xlint:uncheckedオプションを指定して再コンパイルしてください。
[ant:javac] エラー3個
[ant:javac] 警告54個
:recompileMc FAILED
:recompileMc (Thread[Daemon worker,5,main]) completed. Took 1 mins 7.248 secs.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':recompileMc'.
> Compile failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --debug option to get more log output.

BUILD FAILED

使ってるJavaのVersionを疑ったけれど使ってるJavaはJava 8。そもそもJava 7だともっと初めの段階でエラー吐きますしね。

そうこうしているうちに一週間ぐらいが経ちForgeのMDKもMinor VUPされてるので取得しなおし→試す→やっぱり駄目→うーん、とうなってたところ、JavaのMinor Versionって関係してる?とふと気づいてみる。

使っているJDKは1.8.0_25と確かに古い。最新が1.8.0_131なのでこれを入れて再度実行→成功!

このMinor Version間で型推論に関する問題が修正された?
常に最新を使用するのは重要ですね。