Android 构建指北 #12 根据 Variant 决定是否启用插件

2021-12-31 09:54:05 +08:00
 2bab

应该算是大家都会遇到的问题了,写了篇文章聊聊了怎么解决。

https://mp.weixin.qq.com/s/Zlm4PbqM0KlCxkd4xMvRIQ

8663 次点击
所在节点    Android
4 条回复
zhouquanbest
2021-12-31 15:05:34 +08:00
这其实有点伪命题,应该是 plugin 决定需要给那些 variant 注册 task or 其他 action

但这点不符合绝大多数同学的直觉,所以最简单高效的还是通过命令名字判断,否则教育和维护成本太高了。
2bab
2021-12-31 16:57:32 +08:00
@zhouquanbest 确实不符合直觉,但按方案三来说这其实是 Gradle 的门槛不是这篇文章的门槛哈哈哈(需要同学有基本的 Task 相关知识)。命题还算正确的吧~ 禁用插件功能( Task ),粒度更细,同时也是禁用插件的一种方式,毕竟 Configuration Phrase 并没有耗时操作,如果禁掉后面所有的执行期操作基本也是等价于禁用插件了。如果从效果来说,比用命令名判断更安全、有效。我还是希望传播正确的思路~
john6lq
2021-12-31 17:02:16 +08:00
没太看懂...想知道能解决什么具体问题吗?
2bab
2021-12-31 17:19:26 +08:00
@john6lq

> 在 Android 开发中使用过第三方 Gradle 插件的同学都应该碰到过这个问题:我只想在某一些 buildType 或者 flavor 中应用这个插件,但是找不到合适的办法。

具体的例子:
1. 比如我只想在 Release 的 buildType 引入 andresguard 插件的功能
2. 比如我不想在 LocalDebug 的 variant 上传 mapping file ( Firebase 插件的一个功能)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/825425

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX