选择脚本/构建工具

时间:2010-01-27 14:01:35

标签: build rake buildr gant

我们目前正在开发一个包含actionscript和Java的项目。到目前为止,我们使用Ant作为我们的主要构建工具,但它隐含的重复数量和缺乏灵活性(我们正在构建大量的小型子项目,并且每次都复制所有构建文件是一种痛苦)正在推动我们改变工具。

编辑3:我已经完成了对Gant中所有构建的重写,尽管它并不完美,但它大规模缩小了我们的构建文件并使添加新项目变得更加直接,所以我定义了向不想要的人推荐Gant改变他们的构建理念和项目结构,但只是寻找比蚂蚁更方便的工具。我可能会在那些日子里看看graddle和/或Ivy。

EDIT2:在尝试使用Buildr之后,我们将其排除在外,因为它确实比我们实际需要的更多。我现在正在尝试看起来像我们需要的Gant,但文档非常小。它是否值得一直移动到Gradle,还是项目还不够成熟?

编辑:我将尝试澄清我们与Ant的问题。我们有几个具有相似布局的子项目,我们必须编译和运行测试。完成后,其中一些需要打包在一起以生成可执行文件(即客户端,服务器和一些独立的演示)。在ant中描述我们的标准布局的工作是相当长的,并且在不重写整个宏的情况下引入小的变化是非常困难的。 (比如,其中一个项目需要从不同的存储库中获取其可视资产)。

  • Gant这将允许我们重用已经存在于Flash和Java中的ant任务
  • Gradle出于同样的原因,即使它看起来稍微复杂一些
  • Rake似乎是强烈推荐的。缺点是动作脚本集成的实验性支持以及我们缺乏Ruby的知识
  • Buildr看起来很酷,但又来了,没有红宝石的知识
  • Scons似乎动力不足,但Python是一种非常酷的脚本语言

Maven被认为是,但由于固有的复杂性和明显的错误倾向而被淘汰。我们目前倾向于Gant。你们有没有使用过这些工具的经验?他们如何比较?

我们的需求非常基本:编译和打包项目,将它们部署到多个目标和一些脚本功能(例如,运行项目特定的性能测试)。值得注意的是,我们也可以使用Hudson来处理持续集成。

2 个答案:

答案 0 :(得分:5)

我不确定切换到gant会解决你的问题。 Gant只是在groovy而不是xml中编写构建文件。我认为你的问题在你使用蚂蚁的方式上更多。很难说没有更多的细节,但像“笨重的复制”和“复制构建文件”之类的短语让我觉得你可以更有效地使用蚂蚁。

如果您还没有,请查看您的ant任务,看看您是否可以重构它们以消除重复。另外,如果您还没有看过,请检查ant的-find选项。您不应该复制构建文件。

顺便说一下,Ivy是用于依赖管理,而不是构建。

答案 1 :(得分:1)

我知道我们公司中那些以Java为生的人发誓常春藤,但没有任何经验,我没有足够的事实支持这个建议与技术论点。尽管与之前使用的Ant相比,他们确实提到缺少重复作为加分。注意事项。