【问题标题】:Mongock failed: NoClassDefFoundError org/springframework/data/mongodb/MongoDatabaseFactoryMongock 失败:NoClassDefFoundError org/springframework/data/mongodb/MongoDatabaseFactory
【发布时间】:2021-07-21 13:58:10
【问题描述】:

我在我的 Spring Boot 应用程序中使用了以下 pom:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.13.RELEASE</version>
    <relativePath /><!-- resolve parent from repository, refer to http://www.tomitribe.com/blog/2016/06/i-do-not-hate-apache-maven/ -->
  </parent>

<dependencies>
        <dependency>
            <groupId>com.github.cloudyrock.mongock</groupId>
            <artifactId>mongock-bom</artifactId>
            <version>4.3.8</version>
            <type>pom</type>
        </dependency>
        <dependency>
            <groupId>com.github.cloudyrock.mongock</groupId>
            <artifactId>mongock-spring-v5</artifactId>
            <version>4.3.8</version>
        </dependency>
        <dependency>
            <groupId>com.github.cloudyrock.mongock</groupId>
            <artifactId>mongodb-springdata-v3-driver</artifactId>
            <version>4.3.8</version>
        </dependency>
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongodb-driver-sync</artifactId>
            <version>4.2.2</version>
         </dependency>
         <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-mongodb</artifactId>
            <version>2.2.12.RELEASE</version>
</dependency>
</dependencies>

当我使用 java -jar my-app.jar 运行应用程序时,出现以下错误:

NoClassDefFoundError org/springframework/data/mongodb/MongoDatabaseFactory

但是当我使用-noverify 运行应用程序时,似乎一切正常

请问有人可以帮我吗?

【问题讨论】:

    标签: java spring-boot spring-data-mongodb mongock


    【解决方案1】:

    这是由于版本不兼容。

    正如您在compatibility table 中看到的,您使用的 Mongock 版本与 spring-data 3.x 兼容,但您使用的是 2.x。

    Mongock 为 spring-data 提供了两个驱动程序,mongodb-springdata-v3-driver 用于 spring-data 3.x 和 mongodb-springdata-v2-drver 用于 spring-data 2.2.X

    我有几个建议:

    1. 要么将你的 spring-data 依赖升级到 3.x,要么使用 mongodb-springdata-v2-drver(推荐第一个)
    2. 使用依赖管理,因此您不需要为每个依赖指定版本。你可以在春天和Mongock

    你应该解决你的问题;)

    【讨论】:

      猜你喜欢
      • 2017-04-23
      • 1970-01-01
      • 2022-12-02
      • 1970-01-01
      • 1970-01-01
      • 2020-09-30
      • 2023-02-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多