Java

@Gradle 7.0にアップデートしてJava16でビルドする

現在、安定リリースであるGradle 6.8.xはJava16に対応しておらず、ビルドすると以下のような例外が出ます。

FAILURE: Build failed with an exception.

* Where:
Build file '/Users/yusuke/yabumi/core/build.gradle'

* What went wrong:
Could not compile build file '/Users/yusuke/yabumi/core/build.gradle'.
> startup failed:
  General error during semantic analysis: Unsupported class file major version 60
  
  java.lang.IllegalArgumentException: Unsupported class file major version 60
        at groovyjarjarasm.asm.ClassReader.(ClassReader.java:196)
        at groovyjarjarasm.asm.ClassReader.(ClassReader.java:177)
        at groovyjarjarasm.asm.ClassReader.(ClassReader.java:163)
        at groovyjarjarasm.asm.ClassReader.(ClassReader.java:284)
        at org.codehaus.groovy.ast.decompiled.AsmDecompiler.parseClass(AsmDecompiler.java:81)
        at org.codehaus.groovy.control.ClassNodeResolver.findDecompiled(ClassNodeResolver.java:251)
        at org.codehaus.groovy.control.ClassNodeResolver.tryAsLoaderClassOrScript(ClassNodeResolver.java:189)
        at org.codehaus.groovy.control.ClassNodeResolver.findClassNode(ClassNodeResolver.java:169)
        at org.codehaus.groovy.control.ClassNodeResolver.resolveName(ClassNodeResolver.java:125)

この現象は昨年から報告されています。まだJava16はサポートしていないよ、ということでGradle 7.0で正式サポートとなるようです。
Support Java 16 #13481

Gradle 7.0はまだ正式リリースされていませんが、Gradle-wrapper.propertiesのdistributionUrlを以下のように指定するとこの記事執筆時点で最新のGradle 7.0-20210303140106+0000にアップデートできます。
distributionUrl=https\://services.gradle.org/distributions-snapshots/gradle-7.0-20210303140106+0000-bin.zip


distributionUrlを書き換えるだけ。

gradle -versionでバージョンを確認できます。

 ./gradlew -version
Initialized native services in: /Users/yusuke/.gradle/native

------------------------------------------------------------
Gradle 7.0-20210303140106+0000
------------------------------------------------------------

Build time:   2021-03-03 14:01:06 UTC
Revision:     c8b38a56bf4c2229d258badef4a8f408eaf71c9c

Kotlin:       1.4.31
Groovy:       3.0.7
Ant:          Apache Ant(TM) version 1.10.9 compiled on September 27 2020
JVM:          16 (Oracle Corporation 16+36-2231)
OS:           Mac OS X 10.16 x86_64

これでJava16でもビルドできるようになります。

Comments are closed.