美文网首页snowdreamAndroid知识Android开发
Gradle技巧系列一: 打印Task输入输出等信息

Gradle技巧系列一: 打印Task输入输出等信息

作者: snowdream | 来源:发表于2017-04-06 21:58 被阅读167次

在使用Android Studio开发Android应用的时候,我们都知道整个构建过程是由Gradle来驱动的,由一个一个的Gradle Task串起来的。

通常,我们点击工具栏上的绿色三角之后,就开始编译运行工程,直到将APP安装到手机或者模拟器。在默认情况下,开发者通常只能看到简单的提示信息。

下面简单介绍几个技巧,帮助开发者更好的理解整个编译过程:

Gradle 技巧一: 打印每个Task的输入输出

将以下代码贴到模块的build.gradle下

gradle.taskGraph.afterTask { task ->
    StringBuffer taskDetails = new StringBuffer()
    taskDetails << """"-------------
name:$task.name group:$task.group : $task.description
conv:$task.convention.plugins
inputs:
"""
    task.inputs.files.each{ it ->
        taskDetails << " ${it.absolutePath}\n"
    }
    taskDetails << "outputs:\n"
    task.outputs.files.each{ it ->
        taskDetails << " ${it.absolutePath}\n"
    }

    taskDetails << "-------------"
    println taskDetails
}

添加后,每次执行Gradle Task,你都能看到每一个Task的输入输出信息。

Gradle 技巧二: 打印每个模块配置的依赖信息

将以下代码贴到模块的build.gradle下

task listJars << {
    configurations.compile.each { File file -> println file.absolutePath }
}

这段代码将会添加一个Gradle Task(名称为listJars),作用就是打印出compile相关的所有依赖库地址。

当然,这个compile还可以替换成kapt,annotationProcessor, provided 等。

联系方式

sn0wdr1amsn0wdr1am

相关文章

网友评论

  • pdog18:谢谢作者,请问一下这都是一种语言吗?如何去学习他啊。光光拷贝要是需求有变化又不会了。所以想了解下为什么
    snowdream:Groovy是一种基于JVM的语言,和java类似。
    Gradle是基于Groovy开发的一个构建系统,类似Maven。

    如果你感兴趣,可以找相关的官方网站文档学习下。

本文标题:Gradle技巧系列一: 打印Task输入输出等信息

本文链接:https://www.haomeiwen.com/subject/kuqcattx.html