对于一个超过一百万行的多平台项目,使用GNU和微软工具链为所有主流OSes生成驱动程序、库、命令行工具、GUI和操作系统安装包,构建系统的最佳选择是什么?
我们的源代码主要是C语言,有Python、C#和GNU makefile,还有一些C++和bash。它主要驻留在一个存储库中,但我们将源代码推送给各种第三方,这些第三方都有自己的源代码存储库。在保持快速构建方面也有一些兴趣,这可能涉及拆分项目。
目前我们混合使用GNU make、bash、python和微软的DDKBUILD。主要的问题是,我们在make之上维护了一组复杂的脚本,并且更喜欢使用第三方(最好是开源)工具,并且cygwin在Windows上并没有被证明是健壮的(例如,fork并不总是可能的),并且我们当前的构建系统没有构建或安装工具链,因此很容易受到工具链版本变化的影响。
发布于 2009-04-10 15:15:17
我投票给CMake,因为它是一个元构建工具,可以真正从头开始重写KDE4构建系统--并使KDE4现在成为一个甚至可以在WindowsCE上运行的跨平台桌面!
CMake是将KDE4移植到地球上任何操作系统上的运营商--通过使用相关工具链生成大约40 OSes的Makefile(或者在Windows情况下是vcprojs )!
发布于 2008-12-11 10:22:40
总的来说,JetBrains TeamCity运行得很好,所以应该被列入评估列表。
ThoughtWorks Cruise也在相同的领域。虽然它是v1,但它来自一个已经存在了一段时间的马房。
Team Foundation Server没有任何东西可以让你的情况考虑在内,但开箱即用,它可能比我前面提到的其他两个更以MS-shop为中心。
总而言之,以你所拥有的多样性水平,你肯定想尝试你想要使用的任何东西--仅仅因为某个东西被支持在盒子上打勾并不意味着它就会适合oyu正在寻找的东西。
发布于 2008-12-11 17:59:33
迪克森
您的构建主要是整体构建,还是希望单独构建一些库并将它们组装到更大的应用程序中?如果项目间的依赖关系很大,那么您的选择很快就会变得有限。AnthillPro做得很好,我认为TeamCity有一些常春藤集成支持。根据您所说的,这听起来不是一个绝对的需求,但可能有助于加速构建。我们已经看到许多团队有效地执行了这一策略。
由于您正在考虑跨平台(我假设是多台机器)构建,因此排除了除Hudson之外的大多数开源工具。
构建服务器比较矩阵是由我们的朋友在Thoughtworks上托管的:confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix
祝好运。
https://stackoverflow.com/questions/358849
复制相似问题