I'm trying to generate liquibase-scripts with liquibase 4.18.0 and Spring Boot 3.0.1.

And i'm getting this error:

[ERROR] Failed to execute goal org.liquibase:liquibase-maven-plugin:4.18.0:diff (default-cli) on project ims-backend: Execution default-cli of goal org.liquibase:liquibase-maven-plugin:4.18.0:diff failed: An API incompatibility was encountered while executing org.liquibase:liquibase-maven-plugin:4.18.0:diff: java.lang.NoSuchMethodError: 'javax.persistence.spi.PersistenceUnitInfo org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager.obtainDefaultPersistenceUnitInfo()' [ERROR] ----------------------------------------------------- [ERROR] realm = plugin>org.liquibase:liquibase-maven-plugin:4.18.0 [ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy [ERROR] urls[0] = file:/C:/Users/XXXX/.m2/repository/org/liquibase/liquibase-maven-plugin/4.18.0/liquibase-maven-plugin-4.18.0.jar [ERROR] urls[1] = file:/C:/Users/XXXX/.m2/repository/org/liquibase/liquibase-core/4.18.0/liquibase-core-4.18.0.jar [ERROR] urls[2] = file:/C:/Users/XXXX/.m2/repository/javax/xml/bind/jaxb-api/2.3.1/jaxb-api-2.3.1.jar [ERROR] urls[3] = file:/C:/Users/XXXX/.m2/repository/javax/activation/javax.activation-api/1.2.0/javax.activation-api-1.2.0.jar [ERROR] urls[4] = file:/C:/Users/XXXX/.m2/repository/org/yaml/snakeyaml/1.33/snakeyaml-1.33.jar [ERROR] urls[5] = file:/C:/Users/XXXX/.m2/repository/com/opencsv/opencsv/5.7.1/opencsv-5.7.1.jar [ERROR] urls[6] = file:/C:/Users/XXXX/.m2/repository/org/apache/commons/commons-lang3/3.12.0/commons-lang3-3.12.0.jar [ERROR] urls[7] = file:/C:/Users/XXXX/.m2/repository/org/apache/commons/commons-text/1.10.0/commons-text-1.10.0.jar [ERROR] urls[8] = file:/C:/Users/XXXX/.m2/repository/org/apache/commons/commons-collections4/4.4/commons-collections4-4.4.jar [ERROR] urls[9] = file:/C:/Users/XXXX/.m2/repository/org/liquibase/liquibase-commercial/4.18.0/liquibase-commercial-4.18.0.jar [ERROR] urls[10] = file:/C:/Users/XXXX/.m2/repository/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar [ERROR] Number of foreign imports: 1 [ERROR] import: Entry[import from realm ClassRealm[maven.api, parent: null]] [ERROR] 

It seems that

org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager.obtainDefaultPersistenceUnitInfo() 

returns now

jakarta.persistence.spi.PersistenceUnitInfo 

instead of

javax.persistence.spi.PersistenceUnitInfo 

Is there anyting i can do about it, or is the only option to wait for a new liquibase version?

1

1 Answer

Ok i could fix the problem when using liquibase-hibernate6 instead of liquibase-hibernate5

<dependency> <groupId>org.liquibase.ext</groupId> <artifactId>liquibase-hibernate6</artifactId> <version>${liquibase.version}</version> <scope>test</scope> </dependency> 

But i had to override liquibase.version to 4.18.0 in my project, because it is only available for 4.18 and spring boot currently uses 4.17

<liquibase.version>4.18.0</liquibase.version> 

Furthermore i had to change

hibernate.physical_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy 

into

hibernate.physical_naming_strategy=org.hibernate.boot.model.naming.CamelCaseToUnderscoresNamingStrategy 
1

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.