Spring Boot 在 Gradle 中获取包的属性

Posted

技术标签:

【中文标题】Spring Boot 在 Gradle 中获取包的属性【英文标题】:Spring Boot get property of a package in Gradle 【发布时间】:2015-09-22 04:44:52 【问题描述】:

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

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

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

在上面的 sn-p 中,jackson.version 属性来自 Spring Boot pom。现在,在 Gradle 中,我正在使用 Spring Boot 插件,并尝试使用下面的 sn-p 代码..

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 构建。

谢谢!

【问题讨论】:

【参考方案1】:

您可以使用dependency management plugin 导入 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 时默认开始使用依赖管理插件。

【讨论】:

其实依赖是在org.springframework.boot:spring-boot-dependencies:$springBootVersion中定义的,不需要引入spring-boot-starter-parent。 @andy-wilkinson 有没有办法以相同的方式在全球范围内创建一个版本?

以上是关于Spring Boot 在 Gradle 中获取包的属性的主要内容,如果未能解决你的问题,请参考以下文章

spring boot使用gradle打包怎么样排除指定jar包

spring boot使用gradle打包怎么样排除指定jar包

Spring boot + Gradle + Eclipse打war包发布总结

尝试使用 gradle bootrun 编译并获取找不到 spring-boot-gradle-plugin:1.4.0.BUILD-SNAPSHOT

如何使用 Gradle + Spring boot 运行多个配置文件? [复制]

spring boot + jersey工程由jar包转为war包在tomcat中启动报错问题