You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java 17开发Maven插件遇Unsupported class file版本异常求助

问题

用Java 17开发Maven插件,通过以下命令创建了模块:

mvn archetype:generate -DgroupId=com.github.siom79.jasyncapicmp -DartifactId=jasyncapicmp-maven-plugin -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-plugin

已经把Maven更新到3.9.2,还引入了一个基于Java 17构建的依赖库。执行mvn clean install -X时抛出异常:

Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 61
    at org.objectweb.asm.ClassReader.<init> (ClassReader.java:184)
    at org.objectweb.asm.ClassReader.<init> (ClassReader.java:166)
    at org.objectweb.asm.ClassReader.<init> (ClassReader.java:152)
    at org.objectweb.asm.ClassReader.<init> (ClassReader.java:273)
    at org.apache.maven.tools.plugin.extractor.annotations.scanner.DefaultMojoAnnotationsScanner.analyzeClassStream (DefaultMojoAnnotationsScanner.java:207)
    at org.apache.maven.tools.plugin.extractor.annotations.scanner.DefaultMojoAnnotationsScanner.scanArchive (DefaultMojoAnnotationsScanner.java:142)
    at org.apache.maven.tools.plugin.extractor.annotations.scanner.DefaultMojoAnnotationsScanner.scan (DefaultMojoAnnotationsScanner.java:111)
    at org.apache.maven.tools.plugin.extractor.annotations.scanner.DefaultMojoAnnotationsScanner.scan (DefaultMojoAnnotationsScanner.java:78)
    at org.apache.maven.tools.plugin.extractor.annotations.JavaAnnotationsMojoDescriptorExtractor.scanAnnotations (JavaAnnotationsMojoDescriptorExtractor.java:124)
    at org.apache.maven.tools.plugin.extractor.annotations.JavaAnnotationsMojoDescriptorExtractor.execute (JavaAnnotationsMojoDescriptorExtractor.java:103)
    at org.apache.maven.tools.plugin.scanner.DefaultMojoScanner.populatePluginDescriptor (DefaultMojoScanner.java:96)
    at org.apache.maven.plugin.plugin.AbstractGeneratorMojo.execute (AbstractGeneratorMojo.java:260)
    at org.apache.maven.plugin.plugin.HelpGeneratorMojo.execute (HelpGeneratorMojo.java:92)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
[...] 

推测是ASM的ClassReader无法解析Java 17编译的类文件,但通过dependencyManagement强制升级ASM版本未成功,求解决办法。

解决方案

问题核心是maven-plugin-plugin(负责扫描Mojo注解的核心插件)自带的ASM版本过低,不支持Java 17的类文件(major version 61)。仅靠dependencyManagement无法覆盖插件内部依赖,需要直接在maven-plugin-plugin的配置中调整:

方法1:升级maven-plugin-plugin到兼容版本

将maven-plugin-plugin升级到3.8.1及以上(该版本开始支持Java 17),在项目pom.xml中添加如下配置:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-plugin-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <!-- 可选:明确指定Java版本,避免插件使用错误的JDK环境 -->
                <javaVersion>17</javaVersion>
            </configuration>
        </plugin>
    </plugins>
</build>

方法2:给maven-plugin-plugin强制指定高版本ASM

如果暂时无法升级插件,可手动为其指定支持Java 17的ASM版本(如9.4及以上):

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-plugin-plugin</artifactId>
            <version>你当前使用的插件版本</version>
            <dependencies>
                <dependency>
                    <groupId>org.ow2.asm</groupId>
                    <artifactId>asm</artifactId>
                    <version>9.4</version>
                </dependency>
                <dependency>
                    <groupId>org.ow2.asm</groupId>
                    <artifactId>asm-commons</artifactId>
                    <version>9.4</version>
                </dependency>
                <dependency>
                    <groupId>org.ow2.asm</groupId>
                    <artifactId>asm-tree</artifactId>
                    <version>9.4</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build>

额外检查项

确保项目的maven-compiler-plugin正确配置Java 17:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.11.0</version>
    <configuration>
        <source>17</source>
        <target>17</target>
        <release>17</release>
    </configuration>
</plugin>

内容的提问来源于stack exchange,提问作者siom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 15:17:04