巴克与Gradle,专业版和缺点的Android构build系统

我目前正在使用ant来构buildAndroid项目,但是它并不能用于大型项目,并且维护不同的可交付成果正在变得非常痛苦。

我正在看的两个select是Facebook的Buck( http://facebook.github.io/buck/ )和Gradle,Google用Android studio支持( http://tools.android.com/tech-docs/new-构build系统/用户指南 )。

除了尝试和阅读他们的报道,我想问你,你的build议很好的Stackoverflow人。 最好是,如果你已经使用了任何一个工具一段时间,与巴克奖金分,因为它没有得到那么多的覆盖面。

重要的一点是

  • build立速度,特别是开发版本
  • 来自相同代码库的多个可交付成果
  • 使用方便

我也接受其他的select。 你有什么build议,为什么?

Solutions Collecting From Web of "巴克与Gradle,专业版和缺点的Android构build系统"

正如我在Buck文档中提到的那样:“Buck是Android的构build系统,鼓励创build由代码和资源组成的小型可重用模块。

通过devise,Buck鼓励您创build小模块,以便您可以轻松地从现有构build模块中构build新的应用程序。 这意味着保持多个可交付成果是非常简单的:它不需要您将资源库组织到预定义的结构中就可以消除样板。 您还可以创build特殊的构build步骤,以适应您的需求,并通过macros和根尖降压。 (更正式的扩展系统正在开发中。)

我们也关心速度,特别是增量构build的速度。 由于Buck具有强烈的依赖关系概念,我们通常可以避免重build中间文物。 其他的构build系统也试图做到这一点(比如Ant),但是往往会牺牲正确性。 我们没有。

我们认识到IDE支持很重要。 Google与Gradle的合作肯定会给他们带来一些机会。 然而,Buck有一个命令可以从Buck构build文件中定义的依赖关系图中生成一个IntelliJ项目,并且我们已经在我们自己的IntelliJ插件上打破了基础,所以这也是我们关心的。

最后,请记住,巴克用于为Android构buildFacebook,Facebook Messenger和Instagram。 巴克不会离开。 此外,所有三个应用程序的代码(以及缩短版本的应用程序,甚至更快的开发周期)都位于Facebook的一个Git存储库中,所以我们在内部开展工作的人员对于支持多个可交付成果的大型代码库的需求非常敏感。

长期来看,新的Gradle构build系统将成为标准,而且看起来非常好。 但是,它看起来还没有准备好用于非琐碎的项目。 例如,看起来它不支持apklib的依赖。

这是可以理解的,并反映在当前版本为0.3的事实中,我期待着它的发展。

对于今天需要构build的项目,我会使用Maven。 实际上,我正在将客户的构build从Eclipse移植到Maven,以便他们可以有可重复的构build过程,良好的依赖关系pipe理和CI。 新的Gradle构build看起来会更灵活,但现在Maven处理apklibs。 因为Gradle可以使用Maven依赖关系,所以我希望将来能够轻松地从Maven移动到Gradle。

我对巴克一无所知。 但是,这本身就是一面红旗。 我毫不犹豫地使用一个几乎没有人知道的构build系统。 这并不意味着它不好 – 它可能是伟大的。 但现在使用它可能是一场赌博。

这里是一个Gradle插件OkBuck ,它可以让你开始使用BUCK基于你当前的Android Studio + Gradle构build系统,只有10行configuration。 一探究竟。

OkBuck可以让你用gradle和buck来build立你的项目,所有gradle和buck的优点。

我会增加Buck的以下优点:

  • Exopackage ,即增量apk版本; 只需在该页面上查看构build时间表
  • networkingcaching 。 如果您有几个开发人员使用应用程序,则不需要重新构build其他开发人员已经构build的组件。