我们目前正在开发一个包含actionscript和Java的项目.到目前为止,我们使用Ant作为我们的主要构建工具,但它隐含的重复数量和缺乏灵活性(我们正在构建大量的小型子项目,并且每次都复制所有构建文件是一种痛苦)正在推动我们改变工具.
EDIT3:我已经完成了对Gant中所有构建的重写,尽管它并不完美,但它大规模缩小了我们的构建文件,并且使得添加新项目变得更加直接,所以我会明确地向不想改变他们的人推荐Gant构建哲学和项目结构,但只是寻找比蚂蚁更方便的工具.我可能会在那些日子里看看graddle和/或Ivy.
EDIT2:在尝试使用Buildr之后,我们将其排除在外,因为它确实比我们实际需要的更多.我现在正在尝试看起来像我们需要的Gant,但文档非常小.它是否值得一直移动到Gradle,或者该项目还不够成熟?
编辑:我将尝试澄清我们与Ant的问题.我们有几个具有相似布局的子项目,我们必须编译和运行测试.完成后,其中一些需要打包在一起以生成可执行文件(即客户端,服务器和一些独立的演示).在ant中描述我们的标准布局的工作是相当长的,并且在不重写整个宏的情况下引入小的变化是非常困难的.(比如,其中一个项目需要从不同的存储库中获取其可视资产).
Gant允许我们重用已经存在于Flash和Java中的ant任务
Gradle出于同样的原因,即使看起来稍微复杂一点
似乎强烈推荐的耙子.缺点是动作脚本集成的实验性支持以及我们缺乏Ruby知识
Buildr看起来很酷,但又来了,没有红宝石的知识
Scons的动力似乎不大,但Python是一种非常酷的脚本语言
Maven被认为是,但由于固有的复杂性和明显的错误倾向而被淘汰.我们目前倾向于Gant.你们有没有使用过这些工具的经验?他们如何比较?
我们的需求非常基本:编译和打包项目,将它们部署到多个目标和一些脚本功能(例如,运行项目特定的性能测试).值得注意的是,我们也可以使用Hudson来处理持续集成.
我不确定切换到gant会解决你的问题.Gant只是在groovy而不是xml中编写构建文件.我认为你的问题在你使用蚂蚁的方式上更多.很难说没有更多的细节,但像"笨重的复制"和"复制构建文件"这样的短语让我觉得你可以更有效地使用蚂蚁.
如果您还没有,请查看您的ant任务,看看您是否可以重构它们,以消除重复.另外,如果你还没有看到它,请检查ant的-find选项.您不应该复制构建文件.
顺便说一句,Ivy是用于依赖管理,而不是构建.