在使用gradle作为构建工具的android或者java web项目中,我们经常能遇到以下格式
cpp
tasks.register('classesJar', Jar) {
from "$buildDir/intermediates/javac/release/classes" // 假设使用 release 构建变体
}
artifact sourcesJar
使用伪代码解释
cpp
class CustomTasks{
def taskMap = new HashMap()
def register(taskName, taskClass, closure){
def task = taskClass.newInstance();
taskMap.put(taskName, task)
closure.call(task)
}
}
class JarTask{
def customTaskRef = "我是一个自定义任务"
def fromSrc = ""
def toSrc = ""
def doSelf(){
println "定义一任务执行体,action"
}
def from(src){
fromSrc = src
}
def to(src){
toSrc = src
}
}
def tasks2 = new CustomTasks();
tasks2.register("deoTest", JarTask){
it.from "src/main/java/com"
it.to "src/test/java/com"
}
def artifact = {
def task = tasks2.taskMap[it]
println "测试" + task.customTaskRef
println "测试" + task.fromSrc + "," + task.toSrc
}
artifact 'deoTest'
运行
cpp
gradle --init-script=脚本路径
测试结果