8

从 ant 转到 Rake 真的有好处吗?

有人从 ant 迁移过来并发现了一些具有纪念意义的东西吗?

仅供参考:当前环境是用于 J2ME 构建的 Ant

4

4 回答 4

9

我会说是的,但我的观点与 Java 环境人员不同,因为我是 .NET 环境人员。我在 msbuild(MS 的 XML 驱动的 NAnt 工作)中编写并维护了一个重要的构建脚本(clean、generate-assembly-info、build、test、coverage、analysis、package),这非常痛苦:

  • XML 不友好;很吵
  • 团队中没有其他人有兴趣学习它以执行更多、更有用的自动化;如此高的公共汽车系数(即,如果我被公共汽车撞到,他们就会被困住)
  • 它不适合重构或改进——它是那些“触碰你的危险”的事情之一,你知道吗?
  • 它需要编写自定义 C# 任务来运行构建所需的各种工具(尽管公平地说,这些通常是由供应商编写的)

在我大约一个工作周的时间里(在圣诞节时爱上了空荡荡的办公室!),我已经学会了足够多的 ruby​​+rake 来用更短的(就 LOC 而言)脚本替换整个东西,功能稍微多一点,和更多的可理解性(我希望,无论如何;还没有审查过)。

它受益于: - 它是一种新语言,但却是一种真正的语言。我的队友喜欢学习新语言,而这虽然是一个薄弱的借口,但仍然是一个借口;-) 如果我是对的,这可能会减轻总线因素。- 从这里到 capistrano 是一个短距离(我收集),这是来自 RoR 世界的自动化/远程/分布式部署工具。尽管是一家 MS-stack 商店,但我们将把它与 IIS7 结合使用,最终拥有一个 CLI 配置工具。

是的。您的里程可能会有所不同,但对我来说这是值得的。

于 2008-12-30T23:07:54.850 回答
6

如果您愿意,Rake 非常棒:

  • 使用真正的编程语言;与 Ant 相比,条件和循环都非常简单(它们几乎不可能)
  • 易于阅读且可以进行语法检查的文件格式
  • 更直观/可预测的变量赋值

耙子对您不利,因为:

  • 您需要自己提供许多基本任务(如运行 javac、创建 jar 文件等)。像Raven这样的项目可能会有所帮助,但它似乎更倾向于自动下载依赖项,而不是自动化构建/部署过程。另外,文档有点缺乏。
  • 大多数可以自动化的 java 工具都是作为 Ant 任务完成的,这些任务不容易从 Rake 运行;在构建时启动 JVM 可能很烦人
于 2008-09-23T20:04:13.897 回答
1

您可能还想查看buildr。它是基于 rake 构建的更高级别的构建工具。恕我直言,它吸收了 maven 的许多好的特性,并抛弃了坏的特性。我自己没有在任何大事上使用过它,但我知道有人拥有它并且对它非常满意。

于 2008-09-16T12:30:17.470 回答
0

如果 ant 不能满足您的需求,您可能想要检查的另一个工具是Gant 。它为 ant 添加了完整的脚本支持,但允许您根据需要重用您的 ant 任务。这真的取决于你不喜欢蚂蚁的什么。

于 2008-09-18T07:27:45.560 回答