Liquibase 从 JPA 实体生成变更日志

2024-05-09

我有一个 Spring boot、spring data 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

所以,如果我尝试执行命令:液体碱:差异我收到错误:

在我的 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>

如果我执行liquibase:generateChangeLogliquibase 从我现有的数据库生成日志...... 但如果我尝试执行液体碱:差异我收到错误:

[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] = file:/C:/Users/lucas.araujo/.m2/repository/org/liquibase/ext/liquibase-hibernate4/3.5/liquibase-hibernate4-3.5.jar
[ERROR] urls[2] = file:/C:/Users/lucas.araujo/.m2/repository/org/hibernate/hibernate-core/4.3.1.Final/hibernate-core-4.3.1.Final.jar
[ERROR] urls[3] = file:/C:/Users/lucas.araujo/.m2/repository/org/jboss/logging/jboss-logging/3.1.3.GA/jboss-logging-3.1.3.GA.jar
[ERROR] urls[4] = file:/C:/Users/lucas.araujo/.m2/repository/org/jboss/logging/jboss-logging-annotations/1.2.0.Beta1/jboss-logging-annotations-1.2.0.Beta1.jar
[ERROR] urls[5] = file:/C:/Users/lucas.araujo/.m2/repository/org/jboss/spec/javax/transaction/jboss-transaction-api_1.2_spec/1.0.0.Final/jboss-transaction-api_1.2_spec-1.0.0.Final.jar
[ERROR] urls[6] = file:/C:/Users/lucas.araujo/.m2/repository/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar
[ERROR] urls[7] = file:/C:/Users/lucas.araujo/.m2/repository/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar
[ERROR] urls[8] = file:/C:/Users/lucas.araujo/.m2/repository/org/hibernate/common/hibernate-commons-annotations/4.0.4.Final/hibernate-commons-annotations-4.0.4.Final.jar
[ERROR] urls[9] = file:/C:/Users/lucas.araujo/.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[10] = file:/C:/Users/lucas.araujo/.m2/repository/org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.jar
[ERROR] urls[11] = file:/C:/Users/lucas.araujo/.m2/repository/antlr/antlr/2.7.7/antlr-2.7.7.jar
[ERROR] urls[12] = file:/C:/Users/lucas.araujo/.m2/repository/org/jboss/jandex/1.1.0.Final/jandex-1.1.0.Final.jar
[ERROR] urls[13] = file:/C:/Users/lucas.araujo/.m2/repository/org/hibernate/javax/persistence/hibernate-jpa-2.0-api/1.0.1.Final/hibernate-jpa-2.0-api-1.0.1.Final.jar
[ERROR] urls[14] = file:/C:/Users/lucas.araujo/.m2/repository/org/hibernate/hibernate-entitymanager/4.3.1.Final/hibernate-entitymanager-4.3.1.Final.jar
[ERROR] urls[15] = file:/C:/Users/lucas.araujo/.m2/repository/org/hibernate/hibernate-envers/4.3.1.Final/hibernate-envers-4.3.1.Final.jar
[ERROR] urls[16] = file:/C:/Users/lucas.araujo/.m2/repository/org/springframework/spring-beans/4.1.7.RELEASE/spring-beans-4.1.7.RELEASE.jar
[ERROR] urls[17] = file:/C:/Users/lucas.araujo/.m2/repository/org/springframework/spring-core/4.1.7.RELEASE/spring-core-4.1.7.RELEASE.jar
[ERROR] urls[18] = file:/C:/Users/lucas.araujo/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar
[ERROR] urls[19] = file:/C:/Users/lucas.araujo/.m2/repository/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.jar
[ERROR] urls[20] = file:/C:/Users/lucas.araujo/.m2/repository/org/liquibase/liquibase-core/3.4.1/liquibase-core-3.4.1.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import  from realm ClassRealm[maven.api, parent: null]]
[ERROR] 
[ERROR] -----------------------------------------------------: org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager

有人已经遇到这个问题了吗?


我解决了这个问题。

解决方案是我的 pom.xml 文件中缺少一个依赖项。

Pom.xml

<!-- Liquibase -->
    <dependency>
        <groupId>org.liquibase</groupId>
        <artifactId>liquibase-core</artifactId>
        <version>3.4.1</version>
    </dependency>

    <dependency>
        <groupId>org.liquibase</groupId>
        <artifactId>liquibase-maven-plugin</artifactId>
        <version>3.4.1</version>
    </dependency>

<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>
            <dependency>
                <groupId>org.springframework.data</groupId>
                <artifactId>spring-data-jpa</artifactId>
                <version>1.7.3.RELEASE</version>
            </dependency>
        </dependencies>
</plugin>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Liquibase 从 JPA 实体生成变更日志 的相关文章

随机推荐

  • 谷歌会索引带有隐藏div的页面吗?

    我开始重新设计和开发一个包含大量文本的网站 并且我正在考虑如何组织网站上的信息 使其看起来更干净 在网站的某些部分 我想实现一个 jquery 切换效果 其中某些内容放置在隐藏的 div 中 并且该内容将根据用户的 onclick 事件显示
  • ipdb 和 pdb++ 之间的区别?

    Python 有一个名为 pdb 的默认调试器 但社区创建了一些替代品 其中两个是ipdb https github com gotcha ipdb and pdb https github com pdbpp pdbpp 它们似乎迎合了相
  • 使用绑定数据集中的值设置 Gridview 行背景颜色

    我有一个包含 Column 的 GridViewID 我有一个包含两列的数据表 ID DONE 我正在绑定IDDataTable 中的列到 GridView 直到没有它就好了 但现在我需要根据以下内容设置 GridView 行的背景颜色DO
  • 如何从另一个应用程序向一个应用程序添加视图

    我的应用程序叫做我的好应用 MyNiceApp 主要只是一个加载视图的核心coreView在主活动中onCreate coreView由用户根据需要下载的其他插件的视图填充 我定义了核心视图上的各个区域 这些区域可以通过 MyNiceApp
  • 当我尝试构建 JPQL 连接查询时,为什么会得到无效路径?

    我使用的是 JPA 2 1 Hibernate 4 3 6 Final 和 MySQL 5 5 37 如何编写执行联接的 JPQL 查询 我在下面尝试 final String jpqlQuery SELECT m FROM Message
  • Celery计划任务中的打印语句不会出现在终端中

    当我跑步时celery A tasks2 celery worker B我想看到每秒打印 芹菜任务 目前没有打印任何内容 为什么这不起作用 from app import app from celery import Celery from
  • 准备好的声明不返回任何内容

    我知道这个特定的查询是有效的 因为我用未经准备的过程方法测试了它 这里是 name introduction mysqli new mysqli localhost user pass db or die There was a probl
  • 包含小时、分钟和秒的周期[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我需要一个代表年 月 周 日 小时 分钟 秒的间隔数据类型 前三年 年 月 日 可以用Period最后
  • 在函数上使用子例程的目的

    我已经使用 Access 一段时间了 尽管我了解 Function 相对于 Sub 的明显好处是它可以返回值 但我不确定为什么我应该使用 Sub 而不是一个函数 毕竟 除非我弄错了 函数可以做所有 Subs 可以做的事情吗 注意 我完全知道
  • TFS:使用主分支的更改更新分支

    所以 我们有我们的主开发线 我创建一个分支 开发人员 b 创建一个分支 我们俩都做一些工作 开发人员 b 完成他的工作 合并回主开发线 我知道他的更改会影响我 我不想稍后再处理冲突 而是想使用现在主开发行中的更改来更新我的分支 这样我就可以
  • 带有指针数组的 cython

    我在 python 中有一个 numpy ndarrays 列表 具有不同的长度 并且需要非常快速地访问 python 中的列表 我认为指针数组就可以解决问题 我试过 float type t list of arrays no of ar
  • 如何在 cygwin 下配置 Mercurial 以使用 WinMerge 进行合并?

    当 Mercurial 在 cygwin 下运行时 弄清楚如何生成有点棘手WinMerge http winmerge org 来解决合并冲突 我怎样才能做到这一点 诀窍是 cygwin 路径与 Windows 路径不同 因此您需要一个小脚
  • serviceworker 是否可以向 url 请求添加标头

    我有一个网站 我不想让人们创建帐户 它是一个新闻提要 其中每篇新闻文章都进行了分类 我想让人们标记他们感兴趣的类别 以便下次他们访问该网站时 它只显示标记类别的新闻 我将标签保存在 indexedDB 中 据我所知 它可以在服务工作者中使用
  • SWIFT:+[CATransaction Synchronize] 在解码 HTML 实体时在事务中调用

    我正在制作一个获取博客 JSON 内容的应用程序 博客文章的标题显示在 tableView 中 获取的标题是 HTML 编码的 所以我用这段代码解码了它们 func configureCell cell UITableViewCell at
  • 如何顺序运行 golang 测试?

    当我跑步时go test 我的输出 FAIL TestGETSearchSuccess 0 00s Location drivers api test go 283 Error Not equal 200 expected 204 actu
  • Rust 中为什么有 mod 关键字?

    看完之后this https doc rust lang org book crates and modules html 我想知道为什么有一个mod关键字和mod rs 我假设目录层次结构也可以描述模块 必须显式声明模块有几个原因 模块可
  • XAML - 将单元格的行和列索引绑定到自动化 ID

    我正在为 WPF 数据网格中的各个单元格提供自动化 ID 但遇到了一些障碍 我决定尝试根据单元格在网格中的位置 行索引和列索引 来命名单元格 使用 UI 检查器并突出显示有问题的 DataGridCell 之一会显示以下属性 GridIte
  • 如何获取当前/活动 TFS 用户的列表?

    我可以使用 TFSCONFIG IDENTITIES 查看 TFS 中的所有用户 但是 这会调出已有多年历史且不再与 AD 帐户绑定的帐户 我想将搜索限制为仅拥有 AD 帐户的用户 这可能吗 我确实在下面找到了博客 但在尝试之前 我想看看是
  • WaitForSingleObject 是否充当内存屏障?

    昨天一个关于双重检查锁定的问题引发了一系列的想法 让我对一个简单的情况感到不确定 在下面的代码中 是否可以点击printf 不再同步 在这个简单的示例中 这些值可能位于同一缓存行上 因此我认为这种可能性较小 假设一开始可能性 gt 0 如果
  • Liquibase 从 JPA 实体生成变更日志

    我有一个 Spring boot spring data jpa 项目 带有一个父模块和三个子模块 我的模块之一负责我的 JPA 实体 我需要使用该实体的 liquibase 生成一个 xml 变更日志 在我的 liquibase prop