Gradle 可以代替 Maven 完成自动化构建。
Task 是 Gradle 构建的最小执行单元。 clean 就是一种最常见的 Task。
Task 就相当于 Java 中的一个类,继承于基类 DefaultTask,也可以再被子 Task 集成
// build.gradle
task hello {
println "配置阶段执行"
doFirst {
println '最先执行'
}
doLast {
println '最后执行'
}
}
$ gradle hello
> Configure project :
配置阶段执行
> Task :hello
最先执行
最后执行
BUILD SUCCESSFUL in 0s
1 actionable task: 1 executed
常用命令:
常用任务:
Java 项目 build.gradle 示例
apply plugin: 'java' // 使用 Java 插件。可用于自动寻找对应目录,及其他默认配置
apply plugin: 'eclipse' // 使用 eclipse 插件。
sourceCompatibility = 1.5 // 编译级别
version = '1.0' // 代码版本
jar { // 为 jar (打包)任务的 manifest 模块增加属性定义
manifest {
attributes 'Implementation-Title': 'Gradle Quickstart', 'Implementation-Version': version
}
}
repositories { // 配置 Gradle 的依赖源,此处使用 Maven 作为依赖源
mavenCentral()
}
dependencies { // 配置项目依赖,相当于 Maven 种的 dependencies
compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
testCompile group: 'junit', name: 'junit', version: '4.+'
}
test { // 为测试任务增加属性定义
systemProperties 'property': 'value'
}
uploadArchives { // 发布 Jar 包
repositories {
flatDir {
dirs 'repos'
}
}
}
项目结构
multiproject/
api/
services/webservice/
shared/
此处有三个工程。api 工程用来生成给客户端用的 jar 文件,这个 jar 文件可以为 XML webservice 提供 Java 客户端。webservice 是一个 web 应用,生成 XML。shared 工程包含的是前述两个工程共用的代码。