Android 两个版本依赖的 SDK 对比差异工具

803 阅读1分钟

这是一个简单的 diff 工具,对比 Android 两个版本的组件依赖差异,输出添加、删除和升级包的列表

源码地址:github.com/mikeFei1000…
工具jar: github.com/mikeFei1000…

背景

  • 解决从开发到测试链路中组件依赖变更不透明问题,防止有隐藏问题存在
  • 归档每个版本组件依赖的变更记录,做到组件升级有记录可查
  • 提供给测试团队根据依赖变动生成的需要回归的组件的 LIST
  • 具备通用性的工具,自动化生成发版记录中 SDK 变更记录,提高效率

用法

./gradlew :app:dependencies --configuration onlineReleaseRuntimeClasspath > old.txt
./gradlew :app:dependencies --configuration onlineReleaseRuntimeClasspath > new.txt
java -jar build/dependency-diff.jar old.txt new.txt

Example

image.png

原理

  1. 利用 Gradle 中的 dependencies task 输出依赖树,--configuration <name> 可以指定运行任务
  2. 解析两个版本 Gradle 依赖任务的输出结果用 Set 集合封装起来
  3. 对比两个 Set 之间的不同,输出添加、删除和升级的列

完整代码

基于 dependency-tree-diff 改进结果输出成具体的摘要

参考

juejin.cn/post/701317…