Liquibase Hibernate Java 8 支持
Liquibase Hibernate Java 8 support
我希望以前有人遇到过同样的问题,在这里问比试错更快。
我有一个 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 的 class reader 中,您使用的是最新的 Spring 版本吗?最近的 spring 适用于所有 Java 6-8,因此升级 Spring.
应该不会有问题
还有,你的运行时间也是Java8吗?您可能安装了多个 JVM,例如 运行time 是 7 但您使用 JDK8,您可以使用 Java8 构建您的项目,但当然它不会 运行 Java7 环境。
我终于想通了,虽然不是那么容易。
正如 Zielu 指出的那样,问题出在 Spring 版本上。虽然不在我自己的项目中,但在 liquibase-hibernate 中。
所以解决方案是:
- 从 github
下载 liquibase-hibernate 源
- 更新休眠和 spring 依赖项
- 构建 liquibase-hibernate jar
- 将这个新构建的 jar 复制到 liquibase CLI lib 文件夹
- 在 liquibase CLI lib 文件夹中,更新 spring 和休眠库
运行 liquibase 如上。
我希望以前有人遇到过同样的问题,在这里问比试错更快。
我有一个 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 的 class reader 中,您使用的是最新的 Spring 版本吗?最近的 spring 适用于所有 Java 6-8,因此升级 Spring.
应该不会有问题还有,你的运行时间也是Java8吗?您可能安装了多个 JVM,例如 运行time 是 7 但您使用 JDK8,您可以使用 Java8 构建您的项目,但当然它不会 运行 Java7 环境。
我终于想通了,虽然不是那么容易。
正如 Zielu 指出的那样,问题出在 Spring 版本上。虽然不在我自己的项目中,但在 liquibase-hibernate 中。
所以解决方案是:
- 从 github 下载 liquibase-hibernate 源
- 更新休眠和 spring 依赖项
- 构建 liquibase-hibernate jar
- 将这个新构建的 jar 复制到 liquibase CLI lib 文件夹
- 在 liquibase CLI lib 文件夹中,更新 spring 和休眠库
运行 liquibase 如上。