Skip to content

Gradle conversion issue: Unsupported class file major version 69 #6876

Description

@sergey-morenets

Hi

We have Gradle project that uses JDK 25 and Gradle 9.3.1
We tried to migrate it to Mill however mill init command resulted in this error (I removed non-important parts of stack-trace):

converting Gradle build
Downloading https://services.gradle.org/distributions/gradle-8.11.1-bin.zip
..................................................................................................................................
org.gradle.tooling.BuildException: Could not fetch model of type 'BuildModel' using connection to Gradle distribution 'https://services.gradle.org/distributions/gradle-8.11.1-bin.zip'.
        at org.gradle.tooling.internal.consumer.ConnectionExceptionTransformer.transform(ConnectionExceptionTransformer.java:53)
        at org.gradle.tooling.internal.consumer.ResultHandlerAdapter.onFailure(ResultHandlerAdapter.java:42)
        at org.gradle.tooling.internal.consumer.async.DefaultAsyncConsumerActionExecutor$1$1.run(DefaultAsyncConsumerActionExecutor.java:68)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
        at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:48)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
        at java.base/java.lang.Thread.run(Thread.java:1583)
        at org.gradle.tooling.internal.consumer.BlockingResultHandler.getResult(BlockingResultHandler.java:46)
        at org.gradle.tooling.internal.consumer.DefaultModelBuilder.get(DefaultModelBuilder.java:50)
        at mill.main.gradle.MillGradleBuildGenMain$.$anonfun$9(MillGradleBuildGenMain.scala:69)
        at scala.util.Using$.resource(Using.scala:298)
        at mill.main.gradle.MillGradleBuildGenMain$.init(MillGradleBuildGenMain.scala:71)
        at mill.main.gradle.MillGradleBuildGenMain$.$anonfun$4(MillGradleBuildGenMain.scala:17)
        at mainargs.Invoker$.$anonfun$2(Invoker.scala:77)
        at mainargs.Result.flatMap(Result.scala:13)
        at mainargs.Result.flatMap$(Result.scala:7)
        at mainargs.Result$Success.flatMap(Result.scala:23)
        at mainargs.Invoker$.invoke0(Invoker.scala:77)
        at mainargs.Invoker$.invoke(Invoker.scala:86)
        at mainargs.Invoker$.invokeLocal$1(Invoker.scala:106)
        at mainargs.Invoker$.groupArgs$1$$anonfun$2(Invoker.scala:121)
        at mainargs.Result.flatMap(Result.scala:13)
        at mainargs.Result.flatMap$(Result.scala:7)
        at mainargs.Result$Success.flatMap(Result.scala:23)
        at mainargs.Invoker$.groupArgs$1(Invoker.scala:121)
        at mainargs.Invoker$.runMains(Invoker.scala:126)
        at mainargs.ParserForMethods.runRaw0(Parser.scala:291)
        at mainargs.ParserForMethods.runEither(Parser.scala:179)
        at mainargs.ParserForMethods.runOrExit(Parser.scala:73)
        at mill.main.gradle.MillGradleBuildGenMain$.main(MillGradleBuildGenMain.scala:17)
        at mill.main.gradle.MillGradleBuildGenMain.main(MillGradleBuildGenMain.scala)
Caused by: org.gradle.internal.exceptions.LocationAwareException: BUG! exception in phase 'semantic analysis' in source unit '_BuildScript_' Unsupported class file major version 69
        at org.gradle.initialization.exception.DefaultExceptionAnalyser.transform(DefaultExceptionAnalyser.java:97)
        at org.gradle.initialization.exception.DefaultExceptionAnalyser.collectFailures(DefaultExceptionAnalyser.java:63)
        at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:48)
Caused by: BUG! exception in phase 'semantic analysis' in source unit '_BuildScript_' Unsupported class file major version 69
        at org.gradle.groovy.scripts.internal.DefaultScriptCompilationHandler.compileScript(DefaultScriptCompilationHandler.java:160)
        at org.gradle.groovy.scripts.internal.DefaultScriptCompilationHandler.compileToDir(DefaultScriptCompilationHandler.java:112)
        at org.gradle.groovy.scripts.internal.BuildOperationBackedScriptCompilationHandler$2.run(BuildOperationBackedScriptCompilationHandler.java:54)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
        at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.lambda$fromBuildModel$2(DefaultBuildTreeLifecycleController.java:90)
        at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.lambda$runBuild$4(DefaultBuildTreeLifecycleController.java:120)
        ... 75 more
Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 69
        at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:200)
        at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:180)
        at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:166)
        at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:288)

We were surprised that Mill uses such old Gradle version (8.11.1) that released on October, 2024. It seems that using Gradle 9.x for migration could resolve this issue but the only article about automatic migration has no information about that: https://mill-build.org/mill/migrating/auto-migrating.html

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions