I am trying to generate liquibase changelogs based on jpa entities using maven-hibernate-plugin so I can use the generated chagelogs to create my database. I followed the https://www.baeldung.com/liquibase-refactor-schema-of-java-app sample but with higher versions of dependencies. I use spring boot and have three Entity classes, and I get such exception. I tried using other versions of dependencies but I either et the same exception or other wired ones.
Exception:
[ERROR] Failed to execute goal org.liquibase:liquibase-maven-plugin:3.8.1:diff (default-cli) on project CookingApp: Execution default-cli of goal org.liquibase:liquibase-maven-plugin:3.8.1:diff failed: A required class was missing w
hile executing org.liquibase:liquibase-maven-plugin:3.8.1:diff: javax/xml/bind/annotation/XmlSchema
[ERROR] -----------------------------------------------------
[ERROR] realm = plugin>org.liquibase:liquibase-maven-plugin:3.8.1
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/C:/Users/*****/.m2/repository/org/liquibase/liquibase-maven-plugin/3.8.1/liquibase-maven-plugin-3.8.1.jar
[ERROR] urls[1] = file:/C:/Users/*****/.m2/repository/org/liquibase/ext/liquibase-hibernate5/3.7/liquibase-hibernate5-3.7.jar
[ERROR] urls[2] = file:/C:/Users/*****/.m2/repository/org/hibernate/hibernate-core/5.2.16.Final/hibernate-core-5.2.16.Final.jar
[ERROR] urls[3] = file:/C:/Users/*****/.m2/repository/org/jboss/logging/jboss-logging/3.3.1.Final/jboss-logging-3.3.1.Final.jar
[ERROR] urls[4] = file:/C:/Users/*****/.m2/repository/org/hibernate/javax/persistence/hibernate-jpa-2.1-api/1.0.0.Final/hibernate-jpa-2.1-api-1.0.0.Final.jar
[ERROR] urls[5] = file:/C:/Users/*****/.m2/repository/org/javassist/javassist/3.22.0-GA/javassist-3.22.0-GA.jar
[ERROR] urls[6] = file:/C:/Users/*****/.m2/repository/antlr/antlr/2.7.7/antlr-2.7.7.jar
[ERROR] urls[7] = file:/C:/Users/*****/.m2/repository/org/jboss/spec/javax/transaction/jboss-transaction-api_1.2_spec/1.0.1.Final/jboss-transaction-api_1.2_spec-1.0.1.Final.jar
[ERROR] urls[8] = file:/C:/Users/*****/.m2/repository/org/jboss/jandex/2.0.3.Final/jandex-2.0.3.Final.jar
[ERROR] urls[9] = file:/C:/Users/*****/.m2/repository/com/fasterxml/classmate/1.3.0/classmate-1.3.0.jar
[ERROR] urls[10] = file:/C:/Users/*****/.m2/repository/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar
[ERROR] urls[11] = file:/C:/Users/*****/.m2/repository/org/hibernate/common/hibernate-commons-annotations/5.0.1.Final/hibernate-commons-annotations-5.0.1.Final.jar
[ERROR] urls[12] = file:/C:/Users/*****/.m2/repository/org/hibernate/hibernate-entitymanager/5.2.16.Final/hibernate-entitymanager-5.2.16.Final.jar
[ERROR] urls[13] = file:/C:/Users/*****/.m2/repository/net/bytebuddy/byte-buddy/1.6.14/byte-buddy-1.6.14.jar
[ERROR] urls[14] = file:/C:/Users/*****/.m2/repository/org/hibernate/hibernate-envers/5.2.16.Final/hibernate-envers-5.2.16.Final.jar
[ERROR] urls[15] = file:/C:/Users/*****/.m2/repository/com/h2database/h2/1.4.197/h2-1.4.197.jar
[ERROR] urls[16] = file:/C:/Users/*****/.m2/repository/org/springframework/spring-beans/5.3.14/spring-beans-5.3.14.jar
[ERROR] urls[17] = file:/C:/Users/*****/.m2/repository/org/springframework/spring-core/5.3.14/spring-core-5.3.14.jar
[ERROR] urls[18] = file:/C:/Users/*****/.m2/repository/org/springframework/spring-jcl/5.3.14/spring-jcl-5.3.14.jar
[ERROR] urls[19] = file:/C:/Users/*****/.m2/repository/org/springframework/data/spring-data-jpa/2.6.0/spring-data-jpa-2.6.0.jar
[ERROR] urls[20] = file:/C:/Users/*****/.m2/repository/org/springframework/data/spring-data-commons/2.6.0/spring-data-commons-2.6.0.jar
[ERROR] urls[21] = file:/C:/Users/*****/.m2/repository/org/springframework/spring-orm/5.3.13/spring-orm-5.3.13.jar
[ERROR] urls[22] = file:/C:/Users/*****/.m2/repository/org/springframework/spring-jdbc/5.3.13/spring-jdbc-5.3.13.jar
[ERROR] urls[23] = file:/C:/Users/*****/.m2/repository/org/springframework/spring-context/5.3.13/spring-context-5.3.13.jar
[ERROR] urls[24] = file:/C:/Users/*****/.m2/repository/org/springframework/spring-expression/5.3.13/spring-expression-5.3.13.jar
[ERROR] urls[25] = file:/C:/Users/*****/.m2/repository/org/springframework/spring-aop/5.3.13/spring-aop-5.3.13.jar
[ERROR] urls[26] = file:/C:/Users/*****/.m2/repository/org/springframework/spring-tx/5.3.13/spring-tx-5.3.13.jar
[ERROR] urls[27] = file:/C:/Users/*****/.m2/repository/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.jar
[ERROR] urls[28] = file:/C:/Users/*****/.m2/repository/junit/junit/3.8.1/junit-3.8.1.jar
[ERROR] urls[29] = file:/C:/Users/*****/.m2/repository/org/liquibase/liquibase-core/3.8.1/liquibase-core-3.8.1.jar
[ERROR] urls[30] = file:/C:/Users/*****/.m2/repository/org/yaml/snakeyaml/1.24/snakeyaml-1.24.jar
[ERROR] urls[31] = file:/C:/Users/*****/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar
[ERROR] urls[32] = file:/C:/Users/*****/.m2/repository/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import from realm ClassRealm[maven.api, parent: null]]
Spring-boot version: 2.6.2 and pom.xml is as follow:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-envers</artifactId>
</dependency>
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
</dependency>
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>3.8.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<propertyFile>src/main/resources/liquibase.properties</propertyFile>
</configuration>
<dependencies>
<dependency>
<groupId>org.liquibase.ext</groupId>
<artifactId>liquibase-hibernate5</artifactId>
<version>3.7</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>5.3.14</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>2.6.0</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
liquibase.properties:
changeLogFile=src/main/resources/db/changelog/changelog-master.xml
diffChangeLogFile=src/main/resources/db/changelog/changes/0001_init.yml
url=jdbc:postgresql://localhost:5432/cooking
username=cooking
password=xxxx
driver=org.postgresql.Driver
defaultSchemaName=public
referenceUrl=hibernate:spring:com.sam.cookingapp.entitis?dialect=org.hibernate.dialect.PostgreSQLDialect
outputChangeLogFile=src/main/resources/liquibase/liquibase-new-changeLog.xml
referenceDriver=liquibase.ext.hibernate.database.connection.HibernateDriver
changelog-master.xml:
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd">
<includeAll path="changes" relativeToChangelogFile="true"/>
</databaseChangeLog>
does anyone have any idea how to resolve it?