我知道可以通过扩展DefaultTask
类来创建自定义任务类。是否可以对任务规则执行相同的操作?我必须扩展哪一类,以及如何扩展?假设我想从Gradle文档中获得与此规则等效的自定义规则类:
tasks.addRule("Pattern: ping<ID>") { String taskName ->
if (taskName.startsWith("ping")) {
task(taskName) {
doLast {
println "Pinging: " + (taskName - 'ping')
}
}
}
}
我使用Gradle 4.0。
最佳答案
我通过编写一个插件来实现这一点,如下所述:https://docs.gradle.org/4.0/userguide/custom_plugins.html
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
关于gradle - Gradle自定义规则类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45533743/