print gradle task time 放在最外面rootProject的build.gradle中
public class BuildTimeListener implements TaskExecutionListener, BuildListener {
private times = []
private def beforeTime
private def afterTime
@Override
void beforeExecute(Task task) {
beforeTime = System.currentTimeMillis()
}
@Override
void afterExecute(Task task, TaskState taskState) {
afterTime = System.currentTimeMillis()
times.add([afterTime - beforeTime, task.path])
task.project.logger.warn "${task.path} spend ${afterTime - beforeTime}ms"
}
@Override
void buildFinished(BuildResult result) {
println "Task spend time:"
for (time in times) {
if (time[0] >= 50) {
printf "%7sms %s\n", time
}
}
}
@Override
void buildStarted(Gradle gradle) {}
@Override
void projectsEvaluated(Gradle gradle) {}
@Override
void projectsLoaded(Gradle gradle) {}
@Override
void settingsEvaluated(Settings settings) {}
}
project.gradle.addListener(new BuildTimeListener())