在使用gradle作為構建工具的android或者java web項目中,我們經常能遇到以下格式
tasks.register('classesJar', Jar) {from "$buildDir/intermediates/javac/release/classes" // 假設使用 release 構建變體
}artifact sourcesJar
使用偽代碼解釋
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.customTaskRefprintln "測試" + task.fromSrc + "," + task.toSrc}artifact 'deoTest'
運行
gradle --init-script=腳本路徑
測試結果