Liquibase Hibernate Java 8支持

我希望有人之前也遇到过同样的问题,并且在这里提出问题要比反复试验更快.

我有一个Java 8项目,在这里尝试使用Liquibase,并从我的实体生成我的变更日志:

liquibase --changeLogFile=changeLog.yaml 
          --url=hibernate:spring:com.example.domain?dialect=org.hibernate.dialect.MySQL5InnoDBDialect 
          --logLevel=debug generateChangeLog

我收到以下错误:

SEVERE 11/04/15 09:55: liquibase: Failed to scan classpath for unlisted classes
liquibase.exception.DatabaseException: javax.persistence.PersistenceException: Failed to scan classpath for unlisted classes
...
Caused by: org.springframework.core.NestedIOException: ASM ClassReader failed to parse class file - probably due to a new Java class file version that isn't supported yet: file [.../Example.class]; ...

我使用Java 7编译了项目,并且liquibase运行正常.

Liquibase版本:3.3.2
Liquibase Hibernate4.2版本:3.5

由于liquibase是开源的,因此我可以尝试使用Java 8重建它,但是我不知道它是否会有所帮助.

解决方法:

异常表明问题出在Spring的类读取器中,您是否正在使用最新的Spring版本?最新的Spring适用于所有Java 6-8,因此,如果升级Spring,应该不会有问题.

另外,您的运行时Java 8也是如此吗?您可能安装了超过JVM,例如运行时为7,但您使用的是JDK8,则可以使用Java8来构建项目,但是当然它不能在Java7环境中运行.

上一篇:java-将UUID值插入PostgreSQL数据库时出现Liquibase问题


下一篇:mysql-Liquibase-将defaultValueComputed作为CURRENT_TIMESTAMP添加到时间戳列