自定义任务
自动化工作
自定义任务 是 CoddyKit 上的免费 Kotlin Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Kotlin Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Kotlin Academy 课程共包含 4 节课。
什么是 Gradle 任务
任务是构建工作的一项单位,例如编译、复制文件或运行工具。自定义任务可以自动完成项目特定的工作。
注册任务
使用 tasks.register 和配置规避 API。它比旧版的 tasks.create 更受推荐,因为它采用延迟配置。
tasks.register("hello") {
doLast {
println("Hello from Gradle")
}
}doFirst 与 doLast
任务操作会在执行阶段运行。doFirst 会在操作列表开头添加操作,doLast 会在末尾添加操作。它们之外的代码会在配置阶段运行。
tasks.register("greet") {
doFirst { println("start") }
doLast { println("end") }
}任务描述和分组
设置 group 和 description,这样任务就能整齐地显示在 ./gradlew tasks 中。
tasks.register("cleanLogs") {
group = "maintenance"
description = "Deletes generated log files"
doLast { /* ... */ }
}类型化任务
注册内置类型的任务以复用其行为。Copy 可以以声明式方式复制文件。
tasks.register<Copy>("copyDocs") {
from("src/docs")
into("build/docs")
}任务依赖项
使用 dependsOn 表达执行顺序。依赖的任务会先运行。
tasks.register("deploy") {
dependsOn("build")
doLast { println("deploying") }
}配置现有任务
访问预先注册的任务(由插件添加),并对其进行调整。
tasks.named("test") {
// configure the existing test task
}
tasks.test {
maxParallelForks = 2
}任务输入和输出
声明 inputs 和 outputs 可以启用最新状态检查:如果没有任何变化,Gradle 就会跳过该任务。
tasks.register("generate") {
inputs.file("data/template.txt")
outputs.file("build/generated.txt")
doLast { /* generate */ }
}增量构建
正确声明输入和输出后,重新运行未发生变化的任务会打印 UP-TO-DATE,并且不会执行任何工作。这是 Gradle 高速运行的核心原因。
自定义任务类
对于可复用的逻辑,请定义一个继承 DefaultTask 的类,并添加一个 @TaskAction 方法。
import org.gradle.api.DefaultTask
import org.gradle.api.tasks.TaskAction
abstract class GreetTask : DefaultTask() {
@TaskAction
fun run() {
println("Hello")
}
}运行您的任务
使用包装器按名称调用任何已注册的任务。
// ./gradlew hello
// ./gradlew copyDocs
// ./gradlew deploy快速检查
您希望某个操作在执行阶段运行,并且在任务的其他工作之后执行。应使用哪个代码块?
回顾
您可以使用自定义任务自动完成工作:
tasks.register+doFirst/doLast- 使用
Copy等类型化任务,并使用dependsOn控制执行顺序 - 声明
inputs/outputs以进行最新状态检查 - 使用带有
@TaskAction的自定义DefaultTask类
下一步:版本目录。
常见问题解答
「自定义任务」课时是免费的吗?
是的 — 「自定义任务」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Kotlin Academy 课程的其余内容,请升级到 CoddyKit PRO。 Kotlin Academy 课程共包含 4 节课。
「自定义任务」这节课中我会学到什么?
自动化工作 你通过在浏览器中直接运行的动手代码来练习 Kotlin Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Kotlin Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Kotlin Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「自定义任务」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Kotlin Academy 课中编写并运行代码吗?
能。每节 Kotlin Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。