0 Star 0 Fork 1

izumi-sakai/gradle-learn

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
build.gradle 3.32 KB
一键复制 编辑 原始数据 按行查看 历史
//1、Gradle的三大基本脚本:init.gradle、settings.gradle、build.gradle
//init.gradle: Gradle的初始化脚本,对应Gradle实例,在每个项目被构建之前调用
//settings.gradle:Gradle的多项目配置脚本,对应Settings实例,它在Gradle构建时用于确定哪些项目需要被构建
//build.gradle:Gradle项目的配置脚本,对应Project实例,在项目构建时,它用于配置项目
//2、Gradle构建时的生命周期阶段:init(初始化阶段) -> configure(配置阶段) -> execute(执行阶段)
//init:确定哪些项目需要参与构建,为需要构建的项目创建Project对象
//configure:执行build.gradle脚本配置相应的项目,并生成和配置task,构造task的关系依赖图
//execute:根据关系依赖图执行task
//3、Gradle的增量式构建:在执行一个task时,如果它的输入与输出与前一次执行没有发生变化,那么gradle就认为该task是最新的(UP-TO-DATA)
//每一个task都有inputs和outputs属性,它们的类型分别为TaskInputs和TaskOutputs,inputs或outputs可以是文件、文件夹、Project的某个Property等,
//我们可以在定义task时指定inputs或outputs属性从而启用gradle的增量式构建,这样可以避免一个没有变化的task被反复构建,从而提高整个gradle的构建效率
//4、Gradle构建的生命周期回调
//this.gradle.addBuildListener(new BuildListener() {
//
// @Override
// void buildStarted(Gradle gradle) {
// println 'Gradle构建开始'
// }
//
// @Override
// void beforeSettings(Settings settings) {
// println '准备解析settings.gradle'
// }
//
// @Override
// void settingsEvaluated(Settings settings) {
// println 'settings.gradle解析完成'
// }
//
// @Override
// void projectsLoaded(Gradle gradle) {
// println '所有项目从settings加载完成'
// }
//
// @Override
// void projectsEvaluated(Gradle gradle) {
// println '所有项目构建完成'
// }
//
// @Override
// void buildFinished(BuildResult result) {
// println 'Gradle构建结束'
// }
//})
this.gradle.buildStarted {
println "Gradle构建开始"
}
this.gradle.settingsEvaluated {
println "settings.gradle解析完成"
}
this.gradle.projectsLoaded {
println "所有项目从settings加载完成"
}
this.gradle.beforeProject {project ->
//每一个项目构建之前被调用
println "${project.name}项目开始构建"
}
this.gradle.afterProject {project ->
//每一个项目构建完成被调用
println "${project.name}项目构建完成"
}
this.gradle.projectsEvaluated {
println "所有项目构建完成"
}
this.gradle.taskGraph.whenReady {
println("task图构建完成")
}
this.gradle.taskGraph.beforeTask {task ->
//每个task开始执行时会调用这个方法
println("${task.name}task开始执行")
}
this.gradle.taskGraph.afterTask {task ->
//每个task执行结束时会调用这个方法
println("${task.name}task执行完成")
}
this.gradle.buildFinished {
println "Gradle构建结束"
}
//5、项目构建的生命周期回调
this.beforeEvaluate {
println '项目开始构建'
}
this.afterEvaluate {
println '项目构建结束'
}
//6、多项目配置
allprojects {
repositories {
mavenCentral()
}
}
subprojects {
apply plugin: 'groovy'
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Groovy
1
https://gitee.com/zard_sakai/gradle-learn.git
git@gitee.com:zard_sakai/gradle-learn.git
zard_sakai
gradle-learn
gradle-learn
master

搜索帮助

23e8dbc6 1850385 7e0993f3 1850385