小编典典

Spring Boot在Gradle中获取包的属性

spring-boot

我试图将我的项目从Maven构建转换为Gradle。该项目当前使用Spring Boot。

在我当前的Maven配置中,我有

    <dependency>
        <groupId>com.fasterxml.jackson.datatype</groupId>
        <artifactId>jackson-datatype-hibernate4</artifactId>
        <version>${jackson.version}</version>
    </dependency>

在上面的代码片段中,jackson.version属性来自Spring Boot pom。现在,在Gradle中,我正在使用Spring
Boot插件,而我正在尝试使用以下代码段。

buildscript {
repositories {
    mavenCentral()
}
dependencies {
    classpath("org.springframework.boot:spring-boot-gradle-plugin:1.2.4.RELEASE")
}}
    apply plugin: 'idea'
apply plugin: 'spring-boot'
apply plugin: 'java'

dependencies {
    compile("com.fasterxml.jackson.datatype:jackson-datatype-hibernate4")
}

在上面,我期望spring Boot插件插入jackson-hibernate4模块的版本。但是,这不会发生

关于如何实现这一点的任何想法?我的意图是在整个项目中使用相同版本的jackson版本。

谢谢!


阅读 498

收藏
2020-05-30

共1个答案

小编典典

您可以使用依赖项管理插件导入Spring Boot的Bom并访问其指定的属性。

这是您build.gradle进行了必要更改的原始文件:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "org.springframework.boot:spring-boot-gradle-plugin:1.2.4.RELEASE"
        classpath "io.spring.gradle:dependency-management-plugin:0.5.2.RELEASE"
    }
}

apply plugin: 'idea'
apply plugin: 'spring-boot'
apply plugin: 'java'
apply plugin: 'io.spring.dependency-management'

repositories {
    mavenCentral()
}

dependencyManagement {
    imports {
        mavenBom 'org.springframework.boot:spring-boot-starter-parent:1.2.4.RELEASE'
    }
}

ext {
    jacksonVersion = dependencyManagement.importedProperties['jackson.version']
}

dependencies {
    compile("com.fasterxml.jackson.datatype:jackson-datatype-hibernate4:$jacksonVersion")
}

当默认情况下,Spring Boot 1.3将应用依赖管理插件并为您导入Bom时,它将开始使用依赖管理插件。

2020-05-30