这是一个简单的 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
原理
- 利用 Gradle 中的
dependenciestask 输出依赖树,--configuration <name>可以指定运行任务 - 解析两个版本 Gradle 依赖任务的输出结果用
Set集合封装起来 - 对比两个
Set之间的不同,输出添加、删除和升级的列
完整代码
基于 dependency-tree-diff 改进结果输出成具体的摘要