返回
Gradle 精简教程:掌握实用操作,不再依赖学习
Android
2024-01-31 05:12:46
即使不深入钻研 Gradle 的复杂体系,你仍然可以掌握一些必备的操作,让你的构建过程更加高效。以下是你需要了解的关键操作:
提取模板代码
这是最基础的操作之一。对于一个标准的 model.gradle,默认配置如下:
model {
tasks {
register('myTask') {
doLast {
println 'Hello from myTask'
}
}
}
}
如果我们每个模型都这样编写,岂不是很繁琐?因此,让我们提取通用代码:
import org.gradle.api.Plugin
import org.gradle.api.Project
class MyPlugin implements Plugin<Project> {
@Override
void apply(Project project) {
project.task('myTask') {
doLast {
println 'Hello from myTask'
}
}
}
}
优化步骤
新建一个 gradle 插件
plugins {
id 'java-gradle-plugin'
}
编写插件实现
import org.gradle.api.Plugin
import org.gradle.api.Project
class MyPlugin implements Plugin<Project> {
@Override
void apply(Project project) {
project.task('myTask') {
doLast {
println 'Hello from myTask'
}
}
}
}
将插件应用到项目
apply plugin: 'my-plugin'
模块化 Gradle 脚本
大型项目通常会将构建逻辑分解为多个模块化的脚本。这可以提高可读性、可维护性和可重用性。
创建子构建文件
// settings.gradle
include ':module-a'
include ':module-b'
编写模块构建脚本
// module-a/build.gradle
task aTask {
doLast {
println 'Hello from module A'
}
}
// module-b/build.gradle
task bTask {
doLast {
println 'Hello from module B'
}
}
Gradle 依赖管理
声明依赖关系
dependencies {
implementation 'com.google.guava:guava:31.1-jre'
}
使用依赖项
import com.google.common.base.Strings;
public class Main {
public static void main(String[] args) {
System.out.println(Strings.isNullOrEmpty("hello"));
}
}
Gradle 自定义任务
创建自定义任务
task hello {
doLast {
println 'Hello from custom task'
}
}
执行自定义任务
gradle hello