2015-07-04 58 views
8

我試圖將我的項目從Maven構建轉換爲Gradle。該項目目前使用Spring Boot。Spring Boot獲取Gradle中的包的屬性

在我目前的Maven的配置,我有

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

在上面的片段中,jackson.version財產來自春天引導POM。現在,在搖籃中,我使用了Spring啓動插件,我試着去使用的代碼下面的代碼片段..

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") 
} 

在上面,我期待春天啓動插件插入jackson-版本hibernate4模塊。但是,這沒有發生

有關如何實現這一點的任何想法?我的目的是在整個項目中使用相同版本的傑克遜版本。

謝謝!

回答

5

您可以使用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") 
} 

春季啓動1.3將開始使用依賴管理插件默認情況下,當將應用插件並導入BOM爲您服務。

+0

實際上,依賴關係在org.springframework.boot中定義:spring-boot-dependencies:$ springBootVersion,不需要導入spring-boot-starter-parent。 – wujek