2011-05-13 64 views
6

我已经熟悉和使用Ant & Maven的,在这一点上,我想分支出来的另一种工具,我“Buildr”和“摇篮”之间做出决定。我会很感激那些已经或者是用一个或两个的这些工具的洞察力/反馈,因为坦率地说,在这一点上我唯一的真正的区别似乎是红宝石VS常规(和我是舒适和享受两者)。我也很感激回答以下几个:帮助评估构建工具

  1. 我明白,Buildr允许下载和提取不在一个maven类型回购的依赖,并摇篮提供相同的功能?
  2. 能Buildr /摇篮用于建造其他语言的源代码 - 即Groovy中,红宝石,动作/柔性,C系列等?
  3. 如何很好的集成与哈德森,詹金斯Buildr /摇篮?

回答

6

我来自gradle这个方面,所以这里有一些需要考虑的要点......

  1. 摇篮是建立在ANT +常春藤的顶部。它可以处理maven和ivy类型的回购。关于gradle如何处理依赖的详细信息可以参见here
  2. 摇篮处理的Java,Groovy中,斯卡拉等..你可以找到标准插件here的列表。由于Gradle建立在ANT之上,因此您可以使用ant任务来实现构建flex。你基本上可以用Gradle来完成你可以用ANT做的所有事情。您可以将旧的ANT XML转换为Gradle,或者您可以直接导入ANT脚本,并将目标作为Gradle中的任务使用。就C而言,有更好的构建工具来处理这个问题。我发现你可能感兴趣的this thread
  3. Gradle有一个Jenkins插件。然而,Gradle有一个很好的特性,称为gradle wrapper,它是大多数成熟构建使用的。如果你使用这个功能,你不需要担心这个插件。更多关于包装here

我对Buildr不太了解,所以我无法比较,我只能说我们是快乐的Gradle用户。

+0

感谢您的深入解释和链接;他们非常有帮助。但是,我确实有一个后续问题:Gradle是否可以处理ruby/jruby语言版本?从Gradle站点看来,它没有。 – tendans6 2011-05-17 22:40:27

+0

@ tendans6:Ruby被解释为不需要编译。我猜你可以使用Gradle的Exec任务(http://www.gradle.org/latest/docs/dsl/org.gradle.api.tasks.Exec.html)从命令行运行Ruby脚本。尽管之前从未尝试过......我也不确定JRuby。您需要一个将jruby源代码转换为java字节代码的编译器。也许用蚂蚁......? – 2011-05-18 00:32:15

+1

你是对的,可以从Gradle的exec任务运行脚本,而且(和我感兴趣的)似乎可以使用Gradle来打包ruby脚本。同样,似乎可以使用Gradle的ant-like任务来编译JRuby脚本(通过jrubyc)。我很欣赏洞察力和直接联系。 – tendans6 2011-05-18 14:38:31

4

我们最近评估了Gradle,Buildr和Maven 2作为我们当前的Ant和自行开发的Ant-wrappers组合的替代品,最终决定了Gradle。从技术上讲,我们发现他们(Buildr和摇篮)是非常相似,我们决定的理由最终被非技术:

  1. 摇篮= Groovy的= Java的!如果你有一个Java开发团队,那么能够用任何人可以贡献的语言来表达构建逻辑的观点是很难打败的......这不是对Ruby的判断 - 只是考虑了哪些开发资源可用。 Groovy Closures需要一些习惯,但我发现学习很有趣。

  2. 商业支持 - 这可能或可能不重要您的情况,但在我们的这是一个决定性因素。 Gradle由Gradleware提供

  3. 用户采用/流行度(主流) - 对于我们遇到的问题,找到有关Gradle的问题比Buildr更容易找到答案。

不过......我还是很有信心,任何一个会支持我们的多项目构建。如果我们从头开始,Maven 2将是可以接受的,但是我们有很多怪癖和奇怪的项目结构来管理,这使得从第1天开始难以生产......过渡要求使Maven 2变得过于昂贵。

希望有所帮助,祝你好运!