我有一个Spring引导,spring数据jpa项目,父项和三个子模块.我的一个模块负责我的JPA实体.我需要从这个实体生成一个带有liquibase的xml更改日志.
在我的liquibase.properties中我有代码:
changeLogFile=src/main/resources/db/changelog/db.changelog-master.xml
url=jdbc:mysql://localhost:3306/test
username=root
password=root
driver=com.mysql.jdbc.Driver
outputChangeLogFile=src/main/resources/db/outputChangeLog/liquibase-outputChangeLog.xml
referenceUrl=hibernate:spring:br.com.company.vacation.domain?dialect=org.hibernate.dialect.MySQLDialect
diffChangeLogFile=src/main/resources/liquibase-diff-changeLog.xml
Run Code Online (Sandbox Code Playgroud)
所以,如果我尝试执行命令:liquibase:diff我收到错误:
在我的pom.xml中,我配置liquibase就像这样:
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>3.4.1</version>
<configuration>
<propertyFile>src/main/resources/liquibase.properties</propertyFile>
</configuration>
<dependencies>
<dependency>
<groupId>org.liquibase.ext</groupId>
<artifactId>liquibase-hibernate4</artifactId>
<version>3.5</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
</dependencies>
</plugin>
Run Code Online (Sandbox Code Playgroud)
如果我执行liquibase:generateChangeLog liquibase从我现有的数据库生成日志...但是如果我尝试执行liquibase:diff我收到错误:
[ERROR] Failed to execute goal org.liquibase:liquibase-maven-plugin:3.4.1:diff (default-cli) on project vacation-club-web: Execution default-cli of goal org.liquibase:liquibase-maven-plugin:3.4.1:diff failed: A required class was missing while executing org.liquibase:liquibase-maven-plugin:3.4.1:diff: org/springframework/orm/jpa/persistenceunit/DefaultPersistenceUnitManager
[ERROR] -----------------------------------------------------
[ERROR] realm = plugin>org.liquibase:liquibase-maven-plugin:3.4.1
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/C:/Users/lucas.araujo/.m2/repository/org/liquibase/liquibase-maven-plugin/3.4.1/liquibase-maven-plugin-3.4.1.jar
[ERROR] urls[1] …Run Code Online (Sandbox Code Playgroud)