Skip to content

jbake-maven-plugin 2.7.0 fails build with java 21 #797

@stefanseifert

Description

@stefanseifert

we are using jbake-maven-plugin to build the website https://sling.apache.org/, repo https://github.com/apache/sling-site

when we try to switch to java 21, the jbake run fails with:

Exception in thread "main" BUG! exception in phase 'semantic analysis' in source unit 'file:/Z:/Dev/OpenSource/sling-git/sling-site/src/main/jbake/templates/footer.tpl' Unsupported class file major version 65
        at org.codehaus.groovy.control.CompilationUnit$ISourceUnitOperation.doPhaseOperation(CompilationUnit.java:905)
        at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:627)
        at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:389)
        at groovy.lang.GroovyClassLoader.lambda$parseClass$3(GroovyClassLoader.java:332)
        at org.codehaus.groovy.runtime.memoize.StampedCommonCache.compute(StampedCommonCache.java:163)
        at org.codehaus.groovy.runtime.memoize.StampedCommonCache.getAndPut(StampedCommonCache.java:154)
        at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:330)
        at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:314)
        at groovy.text.markup.MarkupTemplateEngine$TemplateGroovyClassLoader.parseClass(MarkupTemplateEngine.java:254)
        at groovy.text.markup.MarkupTemplateEngine$MarkupTemplateMaker.<init>(MarkupTemplateEngine.java:227)
        at groovy.text.markup.MarkupTemplateEngine.createTypeCheckedModelTemplate(MarkupTemplateEngine.java:176)
        at groovy.text.markup.BaseTemplate.includeGroovy(BaseTemplate.java:305)
        at main$_run_closure1$_closure2$_closure3$_closure7$_closure16.doCall(main.tpl:45)
        at main$_run_closure1$_closure2$_closure3$_closure7$_closure16.call(main.tpl)
        at groovy.text.markup.BaseTemplate.writeBody(BaseTemplate.java:275)
        at groovy.text.markup.BaseTemplate.methodMissing(BaseTemplate.java:251)
        at main$_run_closure1$_closure2$_closure3$_closure7.doCall(main.tpl:42)
        at main$_run_closure1$_closure2$_closure3$_closure7.call(main.tpl)
        at groovy.text.markup.BaseTemplate.writeBody(BaseTemplate.java:275)
        at groovy.text.markup.BaseTemplate.methodMissing(BaseTemplate.java:251)
        at main$_run_closure1$_closure2$_closure3.doCall(main.tpl:41)
        at main$_run_closure1$_closure2$_closure3.call(main.tpl)
        at groovy.text.markup.BaseTemplate.writeBody(BaseTemplate.java:275)
        at groovy.text.markup.BaseTemplate.methodMissing(BaseTemplate.java:251)
        at main$_run_closure1$_closure2.doCall(main.tpl:5)
        at main$_run_closure1$_closure2.call(main.tpl)
        at groovy.text.markup.BaseTemplate.writeBody(BaseTemplate.java:275)
        at groovy.text.markup.BaseTemplate.methodMissing(BaseTemplate.java:251)
        at main$_run_closure1.doCall(main.tpl:4)
        at main$_run_closure1.call(main.tpl)
        at groovy.text.markup.BaseTemplate.writeBody(BaseTemplate.java:275)
        at groovy.text.markup.BaseTemplate.methodMissing(BaseTemplate.java:251)
        at main.run(main.tpl:2)
        at groovy.text.markup.BaseTemplate.writeTo(BaseTemplate.java:471)
        at groovy.text.markup.BaseTemplate.layout(BaseTemplate.java:415)
        at archive.run(archive.tpl:3)
        at groovy.text.markup.BaseTemplate.writeTo(BaseTemplate.java:471)
        at org.jbake.template.GroovyMarkupTemplateEngine.renderDocument(GroovyMarkupTemplateEngine.java:66)
        at org.jbake.template.DelegatingTemplateEngine.renderDocument(DelegatingTemplateEngine.java:71)
        at org.jbake.app.Renderer.render(Renderer.java:164)
        at org.jbake.app.Renderer.renderArchive(Renderer.java:257)
        at org.jbake.render.ArchiveRenderer.render(ArchiveRenderer.java:19)
        at org.jbake.app.Oven.renderContent(Oven.java:226)
        at org.jbake.app.Oven.bake(Oven.java:172)
        at org.jbake.maven.GenerateMojo.reRender(GenerateMojo.java:81)
        at org.jbake.maven.GenerateMojo.executeInternal(GenerateMojo.java:74)
        at org.jbake.maven.GenerateMojo.execute(GenerateMojo.java:70)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:126)
        at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2(MojoExecutor.java:328)
        at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute(MojoExecutor.java:316)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:174)
        at org.apache.maven.lifecycle.internal.MojoExecutor.access$000(MojoExecutor.java:75)
        at org.apache.maven.lifecycle.internal.MojoExecutor$1.run(MojoExecutor.java:162)
        at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute(DefaultMojosExecutionStrategy.java:39)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:159)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:105)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:73)
        at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:53)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:118)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:261)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:173)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:101)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:906)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:283)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:206)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:255)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:201)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:361)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:314)
Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 65
        at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:199)
        at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:180)
        at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:166)
        at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:287)
        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)
        at org.codehaus.groovy.control.ResolveVisitor.resolveToOuter(ResolveVisitor.java:870)
        at org.codehaus.groovy.control.ResolveVisitor.resolve(ResolveVisitor.java:506)
        at org.codehaus.groovy.control.ResolveVisitor.visitClass(ResolveVisitor.java:1432)
        at org.codehaus.groovy.control.ResolveVisitor.startResolving(ResolveVisitor.java:262)
        at org.codehaus.groovy.control.CompilationUnit.lambda$new$16(CompilationUnit.java:738)
        at org.codehaus.groovy.control.CompilationUnit$ISourceUnitOperation.doPhaseOperation(CompilationUnit.java:901)
        ... 71 more

i did not look into details, but it seems the dependencies to groovy 3.0.9 which are in jbake-maven-plugin 2.7.0 are the problem - if i overwrite the dependencies in our project to groovy 3.0.25 the error does not occur.

without that override, the build runs fine with java 11 and java 17.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions