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

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

联系方式

时间: 2024-05-11 11:37:30

Gradle技巧系列一: 打印Task输入输出等信息的相关文章

微软BI 之SSIS 系列 - 使用 Script Task 访问非 Windows 验证下的 SMTP 服务器发送邮件

原文:微软BI 之SSIS 系列 - 使用 Script Task 访问非 Windows 验证下的 SMTP 服务器发送邮件 开篇介绍 大多数情况下我们的 SSIS 包都会配置在 SQL Agent Job 中周期性的按计划执行,比如每天晚上调用 SSIS 包刷新数据,处理 Cube 等.一旦 SSIS 包中出现任何异常,报错,那么配置在 SQL Agent Job 中的通知,邮件提醒就会把这些错误信息发邮件到指定的用户或者系统维护者,这样就起到了一个错误监控的作用. 但是在有的情况下,有一些

eclipse-真机调试Android项目,logcat不断不间断的打印无用信息将有用信息淹没

问题描述 真机调试Android项目,logcat不断不间断的打印无用信息将有用信息淹没 eclipse 下用真机调试Android项目,logcat不断打印光传感器和电池等关于真机的信息: 09-29 15:56:35.437: E/LightSensor(401): LightSensor::readEvents mPendingEvent.light = 244 09-29 15:56:35.640: E/LightSensor(401): LightSensor::readEvents

求助:关于jsp中打印500错误堆栈信息

问题描述 <pre><%StringWritersw=newStringWriter();PrintWriterpw=newPrintWriter(sw);exception.printStackTrace(pw);out.println(sw);%></pre>这是我在jsp中写的代码想在页面中能打印500的错误信息可是在页面中打印的信息不全Causedby:java.lang.NumberFormatException:Forinputstring:"te

Gradle学习之第二步创建Task

请通过以下方式下载本系列文章的Github示例代码: git clone https://github.com/davenkin/gradle-learning.git     Gradle的Project从本质上说只是含有多个Task的容器,一个Task与Ant的Target相似,表示一个逻辑上的执行单元.我们可以通过很多种方式定义Task,所有的Task都存放在Project的TaskContainer中.   (1)调用Project的task()方法创建Task 在使用Gradle时,创

Gradle入门系列(转)

Gradle是一种构建工具,它抛弃了基于XML的构建脚本,取而代之的是采用一种基于Groovy的内部领域特定语言.近期,Gradle获得了极大的关注,这也是我决定去研究Gradle的原因. 这篇文章是Gradle教程的第一篇,我们有两个目标: 1. 帮助我们学会安装Gradle. 2. 介绍一些基本概念,这有助于我们进一步理解本教程的后面章节. 我们开始吧,先看一下如何安装Gradle. 安装Gradle 如果我们使用的操作系统是Windows或Linux,我们可以根据以下步骤安装Gradle:

Gradle学习系列之一——Gradle快速入门(转)

  这是一个关于Gradle的学习系列,其中包含以下文章: Gradle快速入门 创建Task的多种方法 读懂Gradle语法 增量式构建 自定义Property 使用java Plugin 依赖管理 构建多个Project 自定义Task类型 自定义Plugin   请通过以下方式下载本系列文章的Github示例代码: git clone https://github.com/davenkin/gradle-learning.git     和Maven一样,Gradle只是提供了构建项目的一

网页设计技巧系列之文本排版

技巧|设计|网页|网页设计 太长时间没写文章了,主要是工作太忙.今晚上没睡着起来把这篇文章写了希望对初学者提供点帮助,同时也在此再次感谢曾经帮助过我的人与我所看书籍的作者们. 我们在做网页的时候会发现:自己画的图也不错,自己做的布局也很精致,做的图标也很漂亮,第一眼看起来都觉得很漂亮,但是看看就觉得不舒服,也不清楚为什么-- 这里我告诉你,也许就是你的排版出现问题了.页面排版不合理产生的视觉效果会让读者的眼睛产生的疲劳感,基本的毛病在于"字间距太挤或太宽"."行距太小或太大&

Windows 2003活动目录管理技巧:迁移打印服务

大多数的公司在决定进行Windows系统的迁移时,不管是从Windows NT到Windows2003,Windows 2000 到Windows 2003,还是内部森林的迁移,都会选择部署新的硬件设备,而不是把他们的旧机器升级成Windows Server 2003.在这种相对比较复杂的迁移方法中,有一个需要迁移的服务:打印服务.在迁移打印服务的过程中,有两个基本注意事项你必须知道: 移除打印机共享.权限和驱动器 将客户端更新,让他们指向新的服务器 你的第一反应肯定是:这有什么,我手动完成就可

.NET 4并行(多核)编程系列之三 从Task的取消

前言:因为Task是.NET 4并行编程最为核心的一个类,也我们在是在并行编程常常打交道的类,所以,对Task对全面的了解很有必要. 上篇文章主要讲述了如何创建一个task,本篇文章主要讲述如何取消一个task. 本篇主的主要议题如下: 1.通过轮询的方式检测Task是否被取消 2.用委托delegate来检测Task是否被取消 3.用Wait Handle还检测Task是否被取消 4.取消多个Task 5.创建组合的取消Task的Token 6.判断一个Task是否已经被取消了 本篇的理论不多