6

我已经熟悉并使用 Ant 和 Maven,在这一点上,我想扩展到另一个工具,我正在“Buildr”和“Gradle”之间做出决定。我很感激那些使用过这些工具中的一个或两个的人的见解/反馈,因为坦率地说,在这一点上,对我来说唯一真正的区别似乎是 ruby​​ 和 groovy(我对这两种工具都很满意)。我也很感激以下问题的答案:

  1. 我了解 Buildr 允许下载和提取不在 maven 类型存储库中的依赖项,Gradle 是否提供相同的功能?
  2. Buildr/Gradle 能否用于构建其他语言源代码——即 groovy、ruby、actionscript/flex、c 系列等?
  3. Buildr/Gradle 与 Hudson 或 Jenkins 的集成程度如何?
4

2 回答 2

6

我来自 gradle 方面,所以这里有几点需要考虑......

  1. Gradle 建立在 Ant+Ivy 之上。它可以处理 maven 和 ivy 类型的 repos。可以在这里找到关于 gradle 如何处理依赖关系的优秀读物。
  2. Gradle 处理 java、groovy、scala 等...您可以在此处找到标准插件列表。由于 Gradle 是在 ANT 之上构建的,因此您可以使用 ant 任务来实现构建 flex。你基本上可以用 Gradle 做所有你可以用 ANT 做的事情。您可以将旧的 ANT XML 转换为 Gradle,或者您可以直接导入 ANT 脚本并将目标用作 Gradle 中的任务。就 C 而言,有更好的构建工具来处理它。我找到了你可能感兴趣的这个线程。
  3. Gradle 有一个 Jenkins 插件。然而,Gradle 有一个很好的特性,称为 gradle wrapper,大多数成熟的构建都使用它。如果您使用此功能,则无需担心拥有此插件。更多关于这里的包装。

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

于 2011-05-15T02:18:33.863 回答
4

我们最近评估了 Gradle、Buildr 和 Maven 2 作为我们当前的 Ant 和本土 Ant-wrappers 组合的替代品,最终选择了 Gradle。从技术上讲,我们发现它们(Builder 和 Gradle)非常相似,而我们做出决定的原因最终是非技术性的:

  1. Gradle = Groovy = Java!如果您有一个 Java 开发人员团队,那么能够用任何人都可以贡献的语言表达构建逻辑的论点很难被击败......这不是对 Ruby 的判断 - 只是考虑哪些开发资源可用。Groovy Closures需要一些时间来适应,但我发现学习起来很有趣。

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

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

也就是说......我仍然非常有信心任何一个都会支持我们的多项目构建。如果我们从头开始,Maven 2 本来是可以接受的,但是我们有很多怪癖和奇怪的项目结构需要管理,这使得从第一天开始就很难高效...过渡要求使 Maven 2 变得非常昂贵。

希望有帮助,祝你好运!

于 2011-06-01T23:50:03.783 回答