|
| 1 | +/** |
| 2 | + * wiki: https://juejin.cn/post/6844903607679057934 |
| 3 | + * 1、初始化阶段 |
| 4 | + */ |
| 5 | +long beginOfSetting = System.currentTimeMillis() |
| 6 | +gradle.projectsLoaded { |
| 7 | + println '----------------------初始化阶段----------------------' |
| 8 | + println '初始化阶段,耗时:' + (System.currentTimeMillis() - beginOfSetting) + 'ms' |
| 9 | + println '----------------------初始化阶段----------------------' |
| 10 | +} |
| 11 | + |
| 12 | +/** |
| 13 | + * 2、配置阶段 |
| 14 | + */ |
| 15 | +def beginOfConfig |
| 16 | +def configHasBegin = false |
| 17 | +def beginOfProjectConfig = new HashMap() |
| 18 | +def configList = new ArrayList() |
| 19 | +gradle.beforeProject { project -> |
| 20 | + if (!configHasBegin) { |
| 21 | + configHasBegin = true |
| 22 | + beginOfConfig = System.currentTimeMillis() |
| 23 | + } |
| 24 | + beginOfProjectConfig.put(project, System.currentTimeMillis()) |
| 25 | +} |
| 26 | +gradle.afterProject { project -> |
| 27 | + def begin = beginOfProjectConfig.get(project) |
| 28 | + configList.add("$project 耗时:${System.currentTimeMillis() - begin} ms") |
| 29 | +} |
| 30 | + |
| 31 | +def beginOfProjectExecute |
| 32 | +gradle.taskGraph.whenReady { |
| 33 | + println '----------------------配置阶段----------------------' |
| 34 | + configList.forEach { configStr -> |
| 35 | + println(configStr) |
| 36 | + } |
| 37 | + println '配置阶段,总共耗时:' + (System.currentTimeMillis() - beginOfConfig) + 'ms' |
| 38 | + println '----------------------配置阶段----------------------' |
| 39 | + beginOfProjectExecute = System.currentTimeMillis() |
| 40 | +} |
| 41 | + |
| 42 | +/** |
| 43 | + * 3、执行阶段 |
| 44 | + */ |
| 45 | +def taskList = new ArrayList() |
| 46 | +gradle.taskGraph.beforeTask { task -> |
| 47 | + task.doFirst { |
| 48 | + task.ext.beginOfTask = System.currentTimeMillis() |
| 49 | + } |
| 50 | + task.doLast { |
| 51 | + taskList.add("$task 耗时:${System.currentTimeMillis() - task.beginOfTask} ms") |
| 52 | + } |
| 53 | +} |
| 54 | +gradle.buildFinished { |
| 55 | + println '----------------------执行阶段----------------------' |
| 56 | + taskList.forEach { taskStr -> |
| 57 | + println(taskStr) |
| 58 | + } |
| 59 | + println '执行阶段,总耗时:' + (System.currentTimeMillis() - beginOfProjectExecute) + 'ms' |
| 60 | + println '----------------------执行阶段----------------------' |
| 61 | +} |
0 commit comments