Gradle概述
- Gradle是构建项目的框架
- Gradle最常见的对象为Project和Task
- Project是整个构建项目的一个逻辑实体(多个Task的容器),而task就是项目的具体任务点(逻辑上的执行单位)
- Gradle将当前目录下的build.gradle文件默认为项目的构建文件
- Gradle会读取所有的build.gradle文件的所有内容来配置Project和Task等,先配置再运行
- Gradle命令
gradle tasks --all 查看所有的task
Project
- Gradle为project默认设置的属性:project:Project本身;path:Project绝对路径;name:Project名字;description:描述信息;buildDir:Project的输出目录
- ext为Project添加新的Property
- taskContainer为本Project中的所有task
- Project中的tasks属性标识TaskContainer,project.tasks=taskContainer
Task
- Task除了包含一系列的操作外,也可以包含很多属性
- Task默认的属性:description,logger
- 简单的task创建
# 先新建一个build.gradle
task helloGradle << {
println "Hello,Gradle,nice to See You!"
}
# 在build.gradle目录下执行gradle helloGradle,将执行helloGradle这个Task
- Task.configure()完成Property的设置
- 对于每一个Task,Gradle都会构建一个同名的Property(该Task当做property访问)和同名函数(可用来配置Task)
- 设置project和task的property,处理task之间的依赖关系,读取所有的build.gradle
- Gradle为每一个Bean中每一个属性自动生成getter()和setter()方法
- 定义属性
def sources=filetree('sourceDir')
def destination=file('destination')
插件
- 插件其实就是让我们偷懒的,就是一组属性和任务的集合,自动定义一些sourcesSets和classPtah
Android Gradle Plugin
- setting.gradle:include子模块
- 根目录下build.gradle 包含一些通用设置,可在各个子模块中使用
- gradle.properties:会成为Project的properties的成员
- local.gradle:定义SDK和NDK路径
- SourcesSets:主要包含各种类型代码的路径,比如“/src/main/java”
- 配置属性 setProperty("hello","Hello Gradle!")