Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot Diffchangelog和Gradle liquibase插件_Spring Boot_Gradle_Liquibase_Liquibase Hibernate - Fatal编程技术网

Spring boot Diffchangelog和Gradle liquibase插件

Spring boot Diffchangelog和Gradle liquibase插件,spring-boot,gradle,liquibase,liquibase-hibernate,Spring Boot,Gradle,Liquibase,Liquibase Hibernate,我正在尝试将liquibase gradle插件集成到我的项目中,以便能够运行diffChangelog、update等命令。 我有以下活动 liquibase { activities { main { changeLogFile 'src/main/resources/db/liquibase-changelog.xml' url appProps['spring.datasource.url']

我正在尝试将liquibase gradle插件集成到我的项目中,以便能够运行diffChangelog、update等命令。 我有以下活动

liquibase {
    activities {
        main {
            changeLogFile 'src/main/resources/db/liquibase-changelog.xml'
            url appProps['spring.datasource.url']
            referenceUrl 'hibernate:spring:com.ourpetpolicy.server.db.entity?dialect=org.hibernate.dialect.PostgreSQLDialect&hibernate.physical_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy&hibernate.implicit_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy'
            username appProps['spring.datasource.username']
            password appProps['spring.datasource.password']
            defaultSchemaName 'public'
        }
    }
    runList = "main"
}
在我的实体中,我导入了一些第三方转换器(例如com.vladmilcea.hibernate.type.json.JsonNodeBinaryType),因此当我运行diffChangelog时,它会引发以下异常:

1:42:29.008 ERROR [liquibase.integration.commandline.Main]: Unexpected error running Liquibase: Unable to load class [com.vladmihalcea.hibernate.type.json.JsonBinaryType]
liquibase.exception.DatabaseException: org.hibernate.boot.registry.classloading.spi.ClassLoadingException: Unable to load class [com.vladmihalcea.hibernate.type.json.JsonBinaryType]
        at liquibase.integration.commandline.CommandLineUtils.createDatabaseObject(CommandLineUtils.java:132)
        at liquibase.integration.commandline.Main.createReferenceDatabaseFromCommandParams(Main.java:1604)
        at liquibase.integration.commandline.Main.doMigration(Main.java:1205)
        at liquibase.integration.commandline.Main.run(Main.java:229)
        at liquibase.integration.commandline.Main.main(Main.java:143)
Caused by: org.hibernate.boot.registry.classloading.spi.ClassLoadingException: Unable to load class [com.vladmihalcea.hibernate.type.json.JsonBinaryType]
        at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:136)
        at org.hibernate.boot.internal.ClassLoaderAccessImpl.classForName(ClassLoaderAccessImpl.java:67)
        at org.hibernate.cfg.annotations.SimpleValueBinder.fillSimpleValue(SimpleValueBinder.java:536)
        at org.hibernate.cfg.SetSimpleValueTypeSecondPass.doSecondPass(SetSimpleValueTypeSecondPass.java:25)
        at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processSecondPasses(InFlightMetadataCollectorImpl.java:1693)
        at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processSecondPasses(InFlightMetadataCollectorImpl.java:1651)
        at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:295)
        at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1224)
        at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1255)
        at liquibase.ext.hibernate.database.HibernateSpringPackageDatabase.createEntityManagerFactory(HibernateSpringPackageDatabase.java:94)
        at liquibase.ext.hibernate.database.HibernateEjb3Database.buildMetadataFromPath(HibernateEjb3Database.java:51)
        at liquibase.ext.hibernate.database.HibernateDatabase.buildMetadata(HibernateDatabase.java:136)
        at liquibase.ext.hibernate.database.HibernateDatabase.setConnection(HibernateDatabase.java:75)
        at liquibase.database.DatabaseFactory.findCorrectDatabaseImplementation(DatabaseFactory.java:129)
        at liquibase.database.DatabaseFactory.openDatabase(DatabaseFactory.java:149)
        at liquibase.integration.commandline.CommandLineUtils.createDatabaseObject(CommandLineUtils.java:97)
        ... 4 common frames omitted
Caused by: java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/JsonProcessingException
        at com.vladmihalcea.hibernate.type.util.Configuration.getObjectMapperWrapper(Configuration.java:140)
        at com.vladmihalcea.hibernate.type.json.JsonBinaryType.<init>(JsonBinaryType.java:29)
        at com.vladmihalcea.hibernate.type.json.JsonBinaryType.<clinit>(JsonBinaryType.java:24)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:398)
        at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:130)
        ... 19 common frames omitted
Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.core.JsonProcessingException
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
        ... 25 common frames omitted

FAILURE: Build failed with an exception.
1:42:29.008错误[liquibase.integration.commandline.Main]:运行liquibase时出现意外错误:无法加载类[com.vladmin.hibernate.type.json.JsonBinaryType]
liquibase.exception.DatabaseException:org.hibernate.boot.registry.classloading.spi.ClassLoadingException:无法加载类[com.vladmihalcea.hibernate.type.json.JsonBinaryType]
位于liquibase.integration.commandline.CommandLineUtils.createDatabaseObject(CommandLineUtils.java:132)
位于liquibase.integration.commandline.Main.createReferenceDatabaseFromCommandParams(Main.java:1604)
位于liquibase.integration.commandline.Main.doMigration(Main.java:1205)
位于liquibase.integration.commandline.Main.run(Main.java:229)
位于liquibase.integration.commandline.Main.Main(Main.java:143)
原因:org.hibernate.boot.registry.classloading.spi.ClassLoadingException:无法加载类[com.vladmihalcea.hibernate.type.json.JsonBinaryType]
位于org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:136)
位于org.hibernate.boot.internal.ClassLoaderAccessImpl.classForName(ClassLoaderAccessImpl.java:67)
位于org.hibernate.cfg.annotations.SimpleValueBinder.FillSimpleValueBinder(SimpleValueBinder.java:536)
位于org.hibernate.cfg.SetSimpleValueTypeSecondPass.doSecondPass(SetSimpleValueTypeSecondPass.java:25)
位于org.hibernate.boot.internal.InFlightMetadataCollectorImpl.ProcessSecondPass(InFlightMetadataCollectorImpl.java:1693)
位于org.hibernate.boot.internal.InFlightMetadataCollectorImpl.ProcessSecondPass(InFlightMetadataCollectorImpl.java:1651)
位于org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:295)
位于org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1224)
位于org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1255)
位于liquibase.ext.hibernate.database.HibernateSpringPackageDatabase.createEntityManagerFactory(HibernateSpringPackageDatabase.java:94)
位于liquibase.ext.hibernate.database.HibernateEjb3Database.buildMetadataFromPath(HibernateEjb3Database.java:51)
位于liquibase.ext.hibernate.database.HibernateDatabase.buildMetadata(HibernateDatabase.java:136)
位于liquibase.ext.hibernate.database.HibernateDatabase.setConnection(HibernateDatabase.java:75)
位于liquibase.database.DatabaseFactory.findCorrectDatabaseImplementation(DatabaseFactory.java:129)
位于liquibase.database.DatabaseFactory.openDatabase(DatabaseFactory.java:149)
位于liquibase.integration.commandline.CommandLineUtils.createDatabaseObject(CommandLineUtils.java:97)
... 省略4个公共框架
原因:java.lang.NoClassDefFoundError:com/fasterxml/jackson/core/JsonProcessingException
位于com.vladmin.hibernate.type.util.Configuration.getObjectMapperWrapper(Configuration.java:140)
在com.vladmihalcea.hibernate.type.json.JsonBinaryType.(JsonBinaryType.java:29)
在com.vladmihalcea.hibernate.type.json.JsonBinaryType.(JsonBinaryType.java:24)
位于java.base/java.lang.Class.forName0(本机方法)
位于java.base/java.lang.Class.forName(Class.java:398)
位于org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:130)
... 省略19个公共框架
原因:java.lang.ClassNotFoundException:com.fasterxml.jackson.core.JsonProcessingException
位于java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
位于java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
位于java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 省略25个公共框架
失败:生成失败,出现异常。
当我清理构建并在中重新运行时,会生成changelog,删除数据库中的所有内容。 从这里,我假设它在我的构建文件夹中查找实体,但其中没有第三方类

我可以将插件配置为在源代码中查找实体,而不是在构建中查找实体,或者如何在构建中生成依赖项?
或者还有其他解决方案吗?

看起来您缺少一些依赖项(由:java.lang.ClassNotFoundException:com.fasterxml.jackson.core.JsonProcessingException引起)。你能确认你用gradle设置了liquibase吗-