在 Booster 3.0.0 版本中,所有模块和特性已完全支持 Android Gradle Plugin 4.1.0,本次更新内容如下:
两周前,我就向 Booster 用户承诺 10 月底会发布 3.0.0 ,集成测试在 10 月中旬其实就已经完成了,后来把集成测试框架 testkit-gradle-plugin 又重写了一遍(已经是第 3 次重写了),加上 Travis-CI 正在从 https://travis-ci.org 迁移到 https://travis-ci.com ,而 Booster 还是在 https://travis-ci.org 上,导致 CI 长时间的排队,加上跑集成测试时间过长(超过 50 分钟),任务被 Travis-CI 强行终止,所以,直到 10 月的最后一天才发布 v3.0.0-alpha-3,其实,在发布 alpha 版本的时候,任务被 Travis-CI 强行终止的问题都还没解决,只好把集成测试从 CI 中暂时移除掉,不过,这个问题已经有了解决方案。
最近在撸一个测试 Gradle Plugin 的 Plugin – bootstage/testkit-gradle-plugin,由于跑 Gradle Plugin 的 Unit Test 必须要使用 Gradle 的 plugins DSL 来启用插件,所以,万般无奈之下,只好用了 Gradle 官方推荐的最佳实践,结果掉进了坑里。
最近在准备 Booster 的 v3.0.0 发布前的测试,为了保证 Booster 的质量,对 Android Gradle Plugin 从 3.0.0 到 4.1.0 挨个版本进行了适配,并写了大量的集成测试,在跑测试用例的过程中,刚开始跑 debug 的构建测试用例一切挺顺利的,后来脑子一抽,把 release 构建也加上吧,没想到,整个测试用例就卡在 Android Gradle Plugin 3.5.0 的用例上不动了,试了很多次,也一直这样,后来一看,原来已经是 OOM 了,还 dump 了一堆 hprof 文件,看了一下 JUnit 的测试报告才发现,原来是 Metaspace 爆了。