TangHuaiZhe
5/5/2019 - 9:04 AM

print gradle task time

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())