我知道可以通过扩展DefaultTask
类来创建自定义任务类。是否可以对任务规则执行相同的操作?我需要扩展哪个课程以及如何?假设我想从Gradle文档中获取与此规则等效的自定义规则类:
tasks.addRule("Pattern: ping<ID>") { String taskName ->
if (taskName.startsWith("ping")) {
task(taskName) {
doLast {
println "Pinging: " + (taskName - 'ping')
}
}
}
}
我使用的是Gradle 4.0。
答案 0 :(得分:1)
我通过编写如下所述的插件来实现这一目标:joanolo
package com.domain
import org.gradle.api.Plugin
import org.gradle.api.Project
class PingPlugin implements Plugin<Project> {
void apply(Project project) {
project.tasks.addRule("Pattern: ping<ID>") { String taskName ->
if (taskName.startsWith("ping")) {
project.tasks.create(taskName) {
doLast {
println "Pinging: " + (taskName - 'ping')
}
}
}
}
}
}
我不确定这是否是最好的方式,但它有效。使用它所需要的只是build.gradle
中的一行:
apply plugin: com.domain.PingPlugin