4

基本上,我将 Liquibase 用于我的大多数 Java 项目(至少在需要 db 迁移的地方)并且它始终在 Java 8 上工作。我现在需要将现有项目迁移到 Java 13。该项目使用 Java 8 和同样使用 Java 13(请参见下面的配置),但是,Liquibase Maven 插件 (mvn liquibase:diff) 会引发 ClassLoadingException:

org.hibernate.boot.registry.classloading.spi.ClassLoadingException: Unable to load class [com.mypackage.TestEntity]: Could not load requested class : com.mypackage.TestEntity

这是我的 POM 文件中的插件配置:

<plugin>
    <groupId>org.liquibase</groupId>
    <artifactId>liquibase-maven-plugin</artifactId>
    <version>${liquibase.maven.plugin.version}</version>
    <configuration>
        <propertyFile>src/main/resources/db-migrations/liquibase/liquibase.properties</propertyFile>
        <changeLogFile>src/main/resources/db-migrations/liquibase/db-changelog-master.xml</changeLogFile>
        <diffChangeLogFile>${changeset.output.dir}/${timestamp} - ${desc}.xml</diffChangeLogFile>
        <logging>info</logging>
    </configuration>
    <dependencies>
        <dependency>
            <groupId>org.liquibase.ext</groupId>
            <artifactId>liquibase-hibernate5</artifactId>
            <version>${liquibase-hibernate5.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
            <version>${springboot.version}</version>
        </dependency>
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>${validation-api.version}</version>
        </dependency>
        <dependency>
            <groupId>org.javassist</groupId>
            <artifactId>javassist</artifactId>
            <version>${javassist.version}</version>
        </dependency>
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>${jaxb.api.version}</version>
        </dependency>
    </dependencies>
</plugin>

和 liquibase.properties:

url=jdbc:postgresql://localhost:5432/user_registrations
username=postgres
password=somepwd
driver=org.postgresql.Driver
referenceUrl=hibernate:spring:com.mypackage?dialect=org.hibernate.dialect.PostgreSQL9Dialect&hibernate.physical_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy&hibernate.implicit_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy

正如我在开头提到的那样,Java 13 构建不起作用:

<maven.compiler.release>13</maven.compiler.release>
<java.version>13</java.version>

所有依赖项都具有最新版本。

知道这里可能是什么问题吗?感谢您的任何输入...

4

0 回答 0