【发布时间】:2014-07-25 03:45:13
【问题描述】:
我一直在研究将 Buck 用于一个大型项目,但我想知道是否有与 gradle 的构建变体和产品风格相当有用的工具。
【问题讨论】:
标签: android gradle android-gradle-plugin build-system
我一直在研究将 Buck 用于一个大型项目,但我想知道是否有与 gradle 的构建变体和产品风格相当有用的工具。
【问题讨论】:
标签: android gradle android-gradle-plugin build-system
对于调试与发布版本(即BuildConfig.java 中的常量),有android_build_config():http://facebook.github.io/buck/rule/android_build_config.html。如果你好奇,the commit that introduced it 会详细解释android_build_config() 的工作原理以及为什么它比 Gradle 有更高效的实现。具体来说,在 Buck 中,您可以同时构建调试和发布版本,但在 Gradle 中,您不能。
虽然目前没有记录,android_binary() 有参数 resource_filter 和 cpu_filters 来限制生成的 APK 到适当的资源。 resource_filter 可以是类似['mdpi', 'hdpi'] 的列表,而cpu_filters 可以是类似['arm', 'armv7', 'x86'] 的集合。目前,对于每个排列,您必须编写一个单独的 android_binary() 规则,这无疑比在 Gradle 中定义事物更乏味。我建议定义一个macro 来生成所有android_binary() 规则,以帮助消除样板。我们正在努力使用内置规则来简化此操作,以便开发人员不必为此创建自己的宏。
【讨论】: