Buck有没有像Gradle的构建变体和产品口味?

时间:2014-07-25 03:45:14

标签: android gradle android-gradle build-system

我一直在研究将Buck用于大型项目,但我想知道是否有相当于gradle的构建变体和产品风格非常有用。

1 个答案:

答案 0 :(得分:3)

对于调试与发布版本(即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_filtercpu_filters,以将生成的APK限制为适当的资源。 resource_filter可以是['mdpi', 'hdpi']之类的列表,而cpu_filters可以是['arm', 'armv7', 'x86']之类的集合。目前,对于每个排列,您必须编写单独的android_binary()规则,这无疑比您在Gradle中定义事物更加繁琐。我建议您定义macro以生成所有android_binary()规则,以帮助消除样板。我们正在努力使用内置规则使这更容易,因此开发人员不必为这些东西创建自己的宏。