我目前正在使用ant来构建Android项目,但是对于大型项目而言,它并不能解决问题,而维护不同的交付项却变得很痛苦。
我正在寻找的两个选择是Facebook的Buck(http://facebook.github.io/buck/)和Google支持的Android studio(http://tools.android.com/tech-docs/new-build-system/user-guide)的Gradle。
除了尝试他们并阅读他们的报道外,我还要向Stackoverflow好的人请教您一些建议。最好是,如果您使用这两种工具已有一段时间,那么可以得到Buck的加分,因为它没有得到那么多的覆盖。
重点是
我也欢迎其他选择。您有什么建议,为什么?
最佳答案
正如我在Buck documentation中放在最前面的部分一样:“Buck是Android的构建系统,它鼓励创建由代码和资源组成的小型可重用模块。”
通过设计,Buck鼓励您创建小型模块,以便您可以轻松地从现有的构建基块中组成一个新的应用程序。这意味着维护多个可交付成果是简单明了的:它消除了样板,而无需您将存储库组织到预定义的结构中。您还可以通过宏和genru创建临时的构建步骤来满足Buck的需求。 (正在制定一个更正规的扩展系统。)
我们还非常关心速度,尤其是增量构建的速度。由于Buck具有很强的依赖性概念,因此我们通常可以避免重建中间工件。其他构建系统也尝试这样做(例如Ant),但结果经常会牺牲正确性。我们没有。
我们认识到IDE支持很重要。当然,Google与Gradle的合作为他们提供了帮助。但是,Buck有一个命令可以从Buck生成文件中定义的依赖关系图中生成IntelliJ项目,并且我们已经在自己的IntelliJ插件上取得了突破,因此我们也要深切关注这一点。
最后,请记住,Buck用于构建Android的Facebook,Facebook Messenger和Instagram。巴克不会消失。此外,所有三个应用程序的代码(以及简化版本的应用程序,以缩短开发周期)都存储在Facebook的一个Git存储库中,因此我们内部负责Buck的那些人对支持多个可交付成果的大型代码库的需求很敏感。 。