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

Spring/Java8/Maven/Hibernate项目执行mvn hibernate:update报invalid constant type:19

解决Hibernate Maven插件执行hibernate:update时的扫描错误

这个错误invalid constant type: 19本质是字节码版本不兼容:常量类型19对应INVOKEDYNAMIC,是Java 7引入的字节码指令,但你使用的Hibernate Maven插件依赖的ASM库版本过低,无法识别Java 8及以上的字节码特性。

以下是具体修复步骤:

1. 升级Hibernate Maven插件并适配ASM版本

确保pom.xml中使用的hibernate-maven-plugin为支持Java 8的版本(至少5.x及以上),同时显式指定适配的ASM依赖:

<build>
    <plugins>
        <plugin>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-maven-plugin</artifactId>
            <version>5.6.15.Final</version>
            <configuration>
                <hibernateCfg>src/main/resources/hibernate.cfg.xml</hibernateCfg>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>org.ow2.asm</groupId>
                    <artifactId>asm</artifactId>
                    <version>9.5</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build>

2. 锁定项目编译级别为Java 8

虽然mvn clean install能成功构建,但要确保编译插件的源码和目标版本严格为1.8,避免生成更高版本的字节码:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.1</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <encoding>UTF-8</encoding>
    </configuration>
</plugin>

3. 清理并重新执行插件命令

执行以下命令彻底清理旧编译产物,再运行Hibernate更新命令:

mvn clean
mvn compile
mvn hibernate:update

额外排查点

  • 若项目依赖的第三方库包含Java 7+字节码特性,升级ASM依赖是最直接的解决方式;
  • 避免使用4.x系列的Hibernate版本,该版本对Java 8的支持有限,建议升级到5.x稳定版。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 11:15:27