我目前正在使用 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 鼓励您创建小型模块,以便您可以轻松地从现有构建 block 中构建新应用程序。这意味着维护多个可交付成果非常简单:它消除了样板文件,而无需您将存储库组织成预定义的结构。您还可以使用 Buck 通过宏和类型创建临时构建步骤以满足您的需求。 (更正式的扩展系统正在开发中。)
我们也非常关心速度,尤其是增量构建的速度。因为 Buck 有很强的依赖概念,所以我们通常可以避免重建中间 Artifact 。其他构建系统也尝试这样做(如 Ant),但结果经常牺牲正确性。我们没有。
我们认识到 IDE 支持很重要。当然,谷歌与 Gradle 的合作让他们在这方面占据了一席之地。但是,Buck 有一个命令可以从 Buck 构建文件中定义的依赖图生成一个 IntelliJ 项目,并且我们已经在自己的 IntelliJ 插件上取得了突破,所以这也是我们非常关心的事情。
最后,请记住,Buck 用于构建适用于 Android 的 Facebook、Facebook Messenger 和 Instagram。巴克不会离开。此外,所有三个应用程序的代码(以及应用程序的简化版本,以加快开发周期)都位于 Facebook 的一个 Git 存储库中,因此我们这些在内部从事 Buck 工作的人对支持多个可交付成果的大型代码库的需求很敏感.
https://stackoverflow.com/questions/16681527/