1

多模块项目具有具有以下依赖关系的模块:web->core->persistence

我将 spring-boot-gradle-plugin 添加到 web 模块:

buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.3.3.RELEASE")
    }
 }
 apply plugin: 'spring-boot'

由于 spring-boot-gradle-plugin 下载旧的休眠版本,我在持久性模块中有重复。

图片

我试图覆盖 web 模块中的休眠依赖项,它正在工作:

buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.3.3.RELEASE")
    }
}

apply plugin: 'spring-boot'

dependencies {
    compile project(':core')
    //Other dependencies

    compile "org.hibernate:hibernate-core:${hibernateVersion}"
    compile "org.hibernate:hibernate-validator:${hibernateValidatorVersion}"
    compile "org.hibernate:hibernate-entitymanager:${hibernateVersion}"
}

图片

为什么插件会下载旧的hibernate版本?是否有可能从 spring-boot-gradle-plugin 中排除旧的休眠版本?

4

1 回答 1

0

首先,考虑将您的插件版本升级到 1.5.9.RELEASE,这是当前的稳定版本。另外,根据文档考虑使用 Spring data jpa 依赖项,

spring-boot-starter-data-jpa POM 提供了一种快速入门的方法。它提供以下关键依赖项:

  1. Hibernate — 最流行的 JPA 实现之一。
  2. Spring Data JPA — 使实现基于 JPA 的存储库变得容易。
  3. Spring ORM — Spring 框架的核心 ORM 支持。

默认情况下,Spring Boot 使用 Hibernate 5.0.x。但是,如果您愿意,也可以使用 4.3.x 或 5.2.x。请参阅 Hibernate 4 和 Hibernate 5.2 示例以了解如何执行此操作。

你可以在这里找到链接。它还向您展示了如何覆盖它以在 maven 项目中使用更多当前版本,这与您所做的没有太大区别。

于 2018-01-04T15:22:26.193 回答