简介
相对于 Maven 项目的 pom.xml
, Gradle 通过 build.gradle
来实现项目的描述。
与 Maven 的比较
依赖项
目前我们多将 Maven 用于管理依赖项,即:
<dependency>
<groupId></groupId>
<artifactId></artifactId>
<version></version>
<scope></scope>
</dependency>
仅从这一点上说, Gradle 对应的功能是:
dependencies {
// 缩写
provided "org.apache.commons:commons-lang3:3.3.2"
// 完整写法
provided group: 'log4j', name: 'log4j', version: '1.2.17'
compile 'org.apache.commons:commons-lang3:3.3.2', optional
compile group: 'log4j', name: 'log4j', version: '1.2.17', optional
}
变量通过双引号的字符串(和 php 语法比较像)可以直接展开:
allprojects {
ext {
springVersion = '4.2.1.RELEASE'
}
}
dependencies {
compile("org.springframework:spring-context:$springVersion")
}
依赖项管理
近几年在 Maven 项目中出现的 BOM
功能,在 Gradle 中通过 nebula-dependency-recommender-plugin 实现。
注:这个部分貌似并不能正常工作。 TODO:考察一下 https://github.com/spring-gradle-plugins/dependency-management-plugin 是否能工作。
dependencyManagement {
imports {
mavenBom 'io.spring.platform:platform-bom:1.0.1.RELEASE'
}
}
dependencies {
compile 'org.springframework.integration:spring-integration-core'
}
IDE 集成
Eclipse 和基于 Eclipse 的 IDE
在 Eclipse Marketplace 中搜索 buildship
,安装 Buildship Gradle Integration
即可
相对应的 Eclipse 的 task 为:
apply plugin: 'eclipse'
IDEA
apply plugin: 'idea'
一个基础的 build.gradle 文件
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'eclipse-wtp'
sourceCompatibility = 1.7
targetCompatibility = 1.7
version = '1.0'
repositories {
mavenLocal()
maven {url 'http://maven.oschina.net/content/groups/public/'}
mavenCentral()
}
dependencies {
compile "commons-collections:commons-collections:3.2"
testCompile "junit:junit:4.+"
}
test {
systemProperties 'property': 'value'
}