我们是一家寻找CI工具的Java商店.无论哈德森和TeamCity的似乎是免费的,但TeamCity的似乎雨衣,并与更多的支持.
我想知道为什么一个人仍然会使用哈德森,如果有人可以提供任何论据/反对?
1> Nat..:
Team City是迄今为止最好的CI服务器.它的杀手级功能是与IDE(IntelliJ,Eclipse和VisualStudio)的紧密集成.例如,它可以显示您在IDE中编辑的文件是否已过期,谁更改了它以及更改了什么.您可以从IDE提交到CI服务器,在构建网格上运行comile和测试,然后如果构建成功,CI服务器将提交.您可以在CI Web应用程序中单击构建报告,它将在IDE中打开相应的文件.
有插件可用(我写了一篇:http://team-piazza.googlecode.com),但并不多.
远程运行/预测试提交是TeamCity非常有用的功能.一般情况下,如果您的构建速度不快,TC可能会更方便,因为在TeamCity中,您可以获得有关构建中发生的事情的持续反馈(传递的测试数量,失败,构建的阶段等等).TC通知也更复杂.您可以为不同类型的构建和各种通知程序(电子邮件,Jabber,Windows托盘)配置不同的规则.
@Pavel:我不知道TeamCity和Hudson所以我不会质疑你评论的开头.但是,关于通知,声称TC更复杂是我不那么谦虚的纯FUD.所有提到的通知渠道都可以在Hudson上找到(你甚至可以添加推特).实际上,我敢打赌,Hudson的插件比TC更多(查看http://wiki.hudson-ci.org/display/HUDSON/Plugins),我确信TC对Hudson有更多限制.
一个快速的谷歌将告诉你有插件来控制团队城市的nabaztag兔子和其他可爱的设备.或者您可以在我的答案*中使用*我链接的插件.紧密的IDE集成的好处是更加快速,并且在您使用它时对您正在处理的代码进行更集中的反馈.您不必等待通知,切换到tge浏览器,阅读报告,切换回IDE,然后打开相应的文件.在您工作时,编辑器窗格会发生变化,以显示其他团队成员如何影响代码.
我同意渠道(哈德森有很多插件),但不同意规则.在TeamCity中,您可以使用您的更改订阅构建,您可以选择在构建开始失败时收到通知(例如,当第一个测试开始失败时).您可以要求在成功序列之后第一次失败的构建时通知,并在失败后首次成功.这些选项适用于所有通知渠道.其中一个通道是IDE通知程序:当出现问题时,您将在IDE中收到通知.我记得哈德森的通知规则要简单得多.
帕维尔 - 不想在这里进行一场吊索比赛,但默认情况下,如果你为失败的版本做出贡献,哈德森只会给你发电子邮件.如果需要,您还可以订阅被告知每个失败的构建.email-ext插件中还有更多选项.您不必批准它,但不要歪曲它.
Hudson Eclipse插件只占IntelliJ Team City的一小部分.
据我所知,PRO TeamCity的论点越来越多地吸引了Hudson.简单的规则!
2> Pascal Thive..:
为哈德森+1.
Hudson是一个非常活跃的项目,拥有广泛的用户群 和一个活跃的用户邮件列表,真的很容易入手,易于使用,已被用于庞大,非常庞大的项目(JBoss,JAX-WS等),因此已经证明成功的记录,提供非常好的先进功能(例如构建矩阵,构建群集等),是开源的,有很多插件......
如果支持确实很重要,您可以获得Sun的商业支持.但是FWIW,我从来没有遇到任何与Hudson的阻塞问题.
更新:您可能知道,Kohsuke Kawaguchi(Hudson的创建者)离开了Sun/Oracle并开办了自己的公司 ,将Hudson带到下一阶段.换句话说,这不是哈德森的威胁.如果您正在寻求支持,您可以获得Hudson CI服务器的认证版本作为订阅计划的一部分(此认证版本捆绑了Hudson的高质量版本以及一组预定义的插件和一些商业插件).
更新:为了说明各自用户群的大小,下面是几个CI工具在Indeed(实时查询)上的工作趋势比较:
这当然不是技术指标.
也许TeamCity很容易使用,而不是要求任何专门用来配置它的人?
如果您聘请一名全职构建工程师来进行持续集成,那么现在您遇到了两个问题:1)您的CI难以使用,因此您的开发人员将难以理解,并且知识将存在于这个人的脑海中, 2)你付钱给别人做一份不应该做的工作!
如果我选择了一个CI服务器,那么我会选择那个有专职工程师职位空缺的人来管理它.它是一个开发人员工具,开发人员应该能够自己管理它.如果他们不能,您需要一个不同的工具或不同的开发人员.
@Henrik:上述图表的解释由您自行决定.但是,也许TeamCity可能是神奇的.
3> 小智..:
我们从Hudson开始了几个Flex项目,然后我们迁移到TeamCity,当.NET开发人员加入我们的CI工作时.现在我们再次替换了TeamCity服务器,回到了Hudson.主要原因是: - 充满活力的哈德森社区,比支持更好. - 适用于各种任务的大量插件. - 开源. - Hudson是免费的,TeamCity只有10个项目免费.
编辑:TeamCity现在可以免费使用20个项目.
出于好奇,TeamCity世界中缺少通过Jenkins插件可用的功能?
10个项目限制已经下降,现在唯一的限制是20个构建配置.对于中小型项目可能就足够了.
4> 小智..:
TeamCity很棒,因为它允许每个开发人员拥有自己的构建配置文件并从IDE挂钩.那是一个孤独的'屁股踢'.还有对GIT等的支持.认真看看吧.专业版是免费的.
Jenkins/Hudson也支持GIT
5> jdtangney..:
反对 Hudson 的最大争议是每个版本都会引入新的bug.
发布非常频繁,因此您必须经常升级,以免落后.这意味着您需要花费大量时间来诊断问题并回滚到以前的Hudson版本.(有时甚至不可能回滚!)
我们在我们的商店中引入持续部署(当您签入代码时,它会部署在实际网站上!)并且不得不与Hudson搏斗,这使我们付出太多代价.
我们正在积极考虑迁移到TeamCity纯粹是因为Hudson的错误成本.
仅仅因为有可用的更新并不意味着您必须升级.我宁愿他们发布更多 - 而不是更少.这是我选择何时升级,我当然不会每周都这样做.此外,维护者对向后兼容性非常保守.插件通常不需要最新的Hudson才能工作.事实上,现在可用的130个插件是针对超过一年的Hudson版本构建的.如果您仍然担心,那么工作中会有一个自动回滚插件..;)
为什么更新和稳定性是相反的因素?这不仅仅指向缺乏质量吗?
当主要提交者发送消息说已经修复了一个主要的安全漏洞时,这是更新的原因.我的观点仍然存在:Hudson太过火热 - 即使没有安装额外的插件.
6> sal..:
我真的很喜欢Teamcity,但在我正在工作的环境中,通过管理层获得Teamcity采购订单所需的时间可能会超过将所有内容迁移到Hudson所花费的时间.
@sal总是让我感到惊讶的是,公司如何为他们的开发团队的工具如此关注几千美元,而宁愿让他们浪费100倍的工作时间.
TeamCity专业人员是免费的.
@Pavel,我们有超过20个用户和更多的构建.
@Chris如果他们从开源免费工具开始,只是为了看看有什么东西可以运行,2年后意识到它仍然没有任何问题?您是否仍然建议花费几千美元来升级到最有可能完全相同的商业工具?