Gradle 生命周期
Gradle distribution:https://services.gradle.org/distributions
Gradle Wrapper:https://docs.gradle.org/current/userguide/gradle_wrapper.html
GRADLE_USER_HOME 默认在 ~/.gradle,可通过 -g 指定:./gradlew -g /mnt/d/GradleHome -x test bootJar
Gradle 只会和 Project 目录与 GRADLE_USER_HOME 目录打交道
Gradle Daemon:与 Maven 不同,Gradle 在第一次启动时会启动 client 和 daemon,再次启动就只启动 client,加快构建速度
Gradle 生命周期
- 为项目创建 Settings 实例,根据 Settings 实例确定有哪些模块,为每个模块创建一个 Project 实例
- 对 Project 实例进行配置
- 执行
gradle Lifecycle hook:https://docs.gradle.org/current/dsl/org.gradle.api.invocation.Gradle.html#org.gradle.api.invocation.Gradle:addListener(java.lang.Object)
https://juejin.cn/collection/6888978202560036877
Gradle 中最小任务单元是 task,task 之间可以进行依赖
task('hw1') { println it.toString() }
task('hw2', { println it.toString() })
//getTasks().register('helloworld') {
tasks.register('helloworld') {
println it.toString()
println 'helloworld'
doLast { println 'doLast' }
doFirst { println 'doFirst' }
}
插件:https://docs.gradle.org/current/userguide/plugins.html
class MyPlugin implements Plugin<Project> { @Override void apply(Project target) { println 'MyPlugin' } } //apply Plugin: MyPlugin apply([Plugin: MyPlugin])
buildSrc:在构建 src 项目前会先构建 buildSrc 项目,并把 jar 添加到 buildscript 的依赖中。类似 Maven 中 install 后给其他项目使用
buildscript:在构建 src 项目过程(构建过程,和业务应用使用的依赖无关)中可以使用的插件
引入插件过程:以 apply plugin: 'org.springframework.boot' 为例
- 通过 org.springframework.boot 在仓库找到 jar
- 把 jar 下载到本地后在 META-INF\gradle-plugins 目录下找到 org.springframework.boot.properties,内容是 implementation-class=org.springframework.boot.gradle.plugin.SpringBootPlugin
- 加载 org.springframework.boot.gradle.plugin.SpringBootPlugin 并实例化,调用其 apply 方法
https://docs.gradle.org/current/userguide/build_lifecycle.html

浙公网安备 33010602011771号