1. 云栖社区>
  2. 博客列表>
  3. 正文

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

snowdream86 2017-04-06 22:03:15 浏览1552 评论0

android 模块 gradle

摘要: 在使用Android Studio开发Android应用的时候,我们都知道整个构建过程是由Gradle来驱动的,由一个一个的Gradle Task串起来的。 通常,我们点击工具栏上的绿色三角之后,就开始编译运行工程,直到将APP安装到手机或者模拟器。

在使用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 等。

联系方式

sn0wdr1am

本文为云栖社区原创内容,未经允许不得转载,如需转载请发送邮件至yqeditor@list.alibaba-inc.com;如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:yqgroup@service.aliyun.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

用云栖社区APP,舒服~

【云栖快讯】浅析混合云和跨地域网络构建实践,分享高性能负载均衡设计,9月21日阿里云专家和你说说网络那些事儿,足不出户看直播,赶紧预约吧!  详情请点击

网友评论

关注
snowdream86
专注Android应用研发,性能优化,移动安全...
487篇文章|54关注
阿里云移动APP解决方案,助力开发者轻松应对移动app中随时可能出现的用户数量的爆发式增长、复杂的移动安全挑战等... 更多>

专精于业务数据与地理信息融合的大数据可视化,通过图形界面轻松搭建专业的可视化应用, 满足您日常业务监控、调度、会... 更多>

是众安保险针对阿里云用户推出的信息安全综合保险,若因黑客攻击导致用户云服务器上的数据泄露并造成经济损失,众安保险... 更多>

为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本... 更多>
MaxCompute75折抢购

MaxCompute75折抢购