Android项目中的Gradle Task流程可视化

简介:

大家在用Gradle开发Android项目的时候,想必都知道构建过程是由一个一个的任务(Task)组成的。
那么项目中到底有那些Task呢?

gradle tasks --all

执行上面的命令,你会看到项目中定义的所有Task。

这些Task是怎样依赖的,构建过程中又是怎样的流程?

在实践过程中,我找到两个gradle插件,可以帮助我们实现流程的可视化。

gradle-task-tree

gradle-task-tree可以将项目下的task依赖关系以树的形式,输出到终端。

引入

buildscript {
  repositories {
    maven {
      url "https://plugins.gradle.org/m2/"
    }
  }
  dependencies {
    classpath "gradle.plugin.com.dorongold.plugins:task-tree:1.2.2"
  }
}

apply plugin: "com.dorongold.task-tree"

使用

gradle ... taskTree --no-repeat

输出

结果会打印在终端。

:build
+--- :assemble
|    \--- :jar
|         \--- :classes
|              +--- :compileJava
|              \--- :processResources
\--- :check
     \--- :test
          +--- :classes
          |    +--- :compileJava
          |    \--- :processResources
          \--- :testClasses
               +--- :compileTestJava
               |    \--- :classes
               |         +--- :compileJava
               |         \--- :processResources
               \--- :processTestResources

gradle-visteg

gradle-visteg可以将项目下的task依赖关系以图的形式,输出到文件。
默认是输出到.dot文件中,通过Graphviz工具可以将.dot文件转换成.png文件。

引入

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'cz.malohlava:visteg:1.0.0'
    }
}

apply plugin: 'cz.malohlava.visteg'

配置

visteg {
    enabled        = true
    colouredNodes  = true
    colouredEdges  = true
    destination    = 'build/reports/visteg.dot'
    exporter       = 'dot'
    colorscheme    = 'spectral11'
    nodeShape      = 'box'
    startNodeShape = 'hexagon'
    endNodeShape   = 'doubleoctagon'
}

详细配置请参考:https://github.com/mmalohlava/gradle-visteg

使用

执行正常的task。
默认会生成build/reports/visteg.dot文件。
在ubuntu下,可以通过xdot,直接打开该文件。

通过以下命令可以转换成png图片

cd build/reports/
dot -Tpng ./visteg.dot -o ./visteg.dot.png

输出

task流程图
{% asset_img visteg.dot.png [task流程图] %}

参考

  1. https://github.com/dorongold/gradle-task-tree
  2. https://github.com/mmalohlava/gradle-visteg
相关文章
|
4月前
|
Web App开发 移动开发 小程序
"项目中mpaas升级到10.2.3 适配Android 14之后 app中的H5以及小程序都访问不了,
"项目中mpaas升级到10.2.3 适配Android 14之后 app中的H5以及小程序都访问不了,显示“网络不给力,请稍后再试”,预发内网版本不能使用,线上版本可以正常使用,这个是什么原因啊,是某些参数没有配置吗,还是说是一些参数改错了?
56 2
|
23天前
|
Java 测试技术 API
云效流水线构建gradle项目失败提示gradle版本过低如何解决
云效(CloudEfficiency)是阿里云提供的一套软件研发效能平台,旨在通过工程效能、项目管理、质量保障等工具与服务,帮助企业提高软件研发的效率和质量。本合集是云效使用中可能遇到的一些常见问题及其答案的汇总。
27 0
|
2月前
|
Java Android开发 C++
安卓SO层开发 -- 第一个NDK项目
安卓SO层开发 -- 第一个NDK项目
16 0
|
3月前
|
IDE 开发工具 Android开发
Android Studio 下发布项目成APK文件
Android Studio 下发布项目成APK文件
117 1
|
3月前
|
JavaScript Android开发
Cordova 打包 Vue 项目到Android打开白屏
Cordova 打包 Vue 项目到Android打开白屏
|
4月前
|
开发工具 Android开发 开发者
Android 项目编译 Gradle 配置说明
Android 项目编译 Gradle 配置说明
140 0
|
4月前
|
Web App开发 JSON Android开发
【Android App】实战项目之仿微信的视频通话(附源码和演示 超详细必看)
【Android App】实战项目之仿微信的视频通话(附源码和演示 超详细必看)
74 0
|
4月前
|
传感器 人工智能 自动驾驶
【Android App】物联网实战项目之自动驾驶的智能小车(附源码和演示 超详细)
【Android App】物联网实战项目之自动驾驶的智能小车(附源码和演示 超详细)
84 0
|
4月前
|
JSON 定位技术 Android开发
【Android App】实战项目之仿微信的附近的人(附源码和演示 超详细)
【Android App】实战项目之仿微信的附近的人(附源码和演示 超详细)
32 0
|
4月前
|
JSON Android开发 数据格式
【Android App】实战项目之仿抖音的短视频分享App(附源码和演示视频 超详细必看)
【Android App】实战项目之仿抖音的短视频分享App(附源码和演示视频 超详细必看)
76 1