我一直在研究将Buck用于大型项目,但我想知道是否有相当于gradle的构建变体和产品风格非常有用。
答案 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_filter
和cpu_filters
,以将生成的APK限制为适当的资源。 resource_filter
可以是['mdpi', 'hdpi']
之类的列表,而cpu_filters
可以是['arm', 'armv7', 'x86']
之类的集合。目前,对于每个排列,您必须编写单独的android_binary()
规则,这无疑比您在Gradle中定义事物更加繁琐。我建议您定义macro以生成所有android_binary()
规则,以帮助消除样板。我们正在努力使用内置规则使这更容易,因此开发人员不必为这些东西创建自己的宏。