眼下,對於gradle這個目標的一個經常運行,輸出看起來是這樣的:使用Gradle,我怎樣才能打印每個任務執行多長時間?
:DataPlanner:clean :common:clean :server:clean :simulator:clean :util:clean :util:compileJava :util:processResources UP-TO-DATE :util:classes :util:compileTestJava :util:processTestResources :util:testClasses :util:test :util:jar :common:compileJava :common:processResources UP-TO-DATE :common:classes :common:compileTestJava :common:processTestResources
我如何得到它更多的是這個樣子?
:DataPlanner:clean took 2secs :common:clean took 2 secs :server:clean took 3 secs :simulator:clean took 4 secs :util:clean took 1 sec ...
如果無法讓每項任務在完成時打印其持續時間,則打印時間戳將是一個可接受的選擇。
任何想法?
修改建議的解決方案,並沒有對我的工作之一,這一個做的:
gradle.taskGraph.beforeTask { Task task ->
task.ext.setProperty("startTime", new java.util.Date())
}
gradle.taskGraph.afterTask { Task task, TaskState state ->
int secs = (new java.util.Date().getTime() - task.ext.startTime.getTime())/1000
int mins = secs/60
if (4 < secs) {
int sec = secs - mins * 60
println " -> took " + mins + ((1 == mins) ? " min " : " mins ") + sec + ((1 == sec) ? " sec" : " secs")
}
}
上面並沒有爲我工作,但我發現一個小的修改,我可以讓它工作:
– jasons2645@ jasons2645對此深感抱歉!我的版本使用新的Java 8時間庫。我應該提到這一點。 – whaleberg