你专业使用什么构建工具?

时间:2008-11-26 14:45:49

标签: ide ant build-automation

在家里,我使用CTRL + SHIFT + B或F7或任何键序列启动构建工具的构建。在工作中,这并没有完全削减它。

在我的第一份工作(实习)中,我们使用了一种名为Visual Build的产品,我非常喜欢这种产品。这是我曾经使用过的最好的构建工具。这里的缺点是它不是免费的。

在我最近的工作中,我进来时对蚂蚁一无所知。现在,不幸的是,我已经深深地参与了我们的构建过程,并且无法自拔。它是有效的,是的,但是在从Visual构建开始之后,似乎它正在为我的每一步而战。是的,它是免费的,但我们并不是想成为一家只有自由软件的开发公司。

我从未查看make或任何其他构建工具,所以我真的不知道还有什么。

有没有人见过或有使用Visual Build的经验?大多数情况下,我喜欢一些关键的东西:

  1. 它有一个GUI
  2. 它运行任意VBScript而不需要编译类
  3. 您可以逐步完成构建过程,也可以从中间的任何地方开始。
  4. 有没有这样的免费构建工具?有没有办法让人们相信继续前进是值得的?这是2008年。我们使用IDE来开发,为什么不(IBE)来构建?

    编辑:我主要是在寻找我上一期问题的答案;有没有我可以免费使用的内置GUI的解决方案?

15 个答案:

答案 0 :(得分:4)

不是很复杂,但我们使用一组批处理文件。这很有效。

答案 1 :(得分:3)

我们使用FinalBuilder - 我认为它与VisualBuild非常相似,尽管我没有使用后者。

它确实从命令行运行,如果需要,您可以将其与CC.Net集成。

答案 2 :(得分:2)

对于Java项目,我们使用Teamcity,类似巡航控制,但你也可以进行远程运行,即你将更改发送到服务器,它构建并进行单元测试,如果一切正常,那么你签到,非常好的构建工具,最多可免费提供20种构建配置。

对于我们的Visual Studio 2005项目,包括使用InstallShield打包最终的exes和dll并将它们放在共享服务器上,我们使用Final Builder,它不是免费的,但它非常易于使用并开始使用。

我们还telnet(从FinalBuilder)到许多其他平台(Unix / Linux / OpenVMS)并通过在那里运行makefiles来启动远程构建。

我们不使用连续版本,但有一个FinalBuilder服务器可以处理它,并免费获得FinalBuilder Professional许可证。

我们对FinalBuilder非常满意,它很容易掌握并且足够强大以解决大多数问题。

答案 3 :(得分:2)

CMake。为KDevelop,Eclipse,Makefiles和Visual Studio(以及XCode)生成构建文件,它确实有效。虽然编程功能相当有限,但您可以使用宏轻松扩展它。它易于学习,将现有应用程序从Visual Studio移植到它非常简单。但是,您仅限于C ++ / C和IIRC Fortran代码。

KDE现在也在使用CMake,因此它似乎可以很好地扩展(即项目/依赖项检查的生成时间也不算太差)。

答案 4 :(得分:1)

我不确定这正是您要找的,但我喜欢CruiseControl.NET。我使用MSBuild任务构建我的项目。它没有准确的GUI,但是有一个Web界面可以查看构建结果和一个系统托盘驻留程序,它会提醒您构建状态。

答案 5 :(得分:1)

勾拳。它是免费的。

UppercuT使用NAnt构建,它是一个非常容易使用的Build Framework。

自动构建就像(1)解决方案名称,(2)源控制路径,(3)大多数项目的公司名称一样简单!!!

http://code.google.com/p/uppercut/

这里有一些很好的解释:UppercuT

答案 6 :(得分:0)

回到击键的东西一秒钟,我找到了CTO喜欢的Hoekey。我不是自己使用它,但作为一种为事物分配按键的方法,它非常好。

答案 7 :(得分:0)

我对Visual Build一无所知,但从你的描述来看,它听起来像是与Windows绑定而不是从命令行运行。

如果您正在构建Java软件(我假设您使用的是Ant),那么最好使用跨平台工具。如果您可以从命令行运行该工具,那么它是可编写脚本的,这对于自动化非常重要。

Ant也是可扩展的,也是事实上的标准。您可以使用的许多工具(Cobertura,TestNG等)提供Ant任务,以便它们可以轻松地与您的构建集成。

我将Ant用于所有Java项目。有些人更喜欢Maven,但我不是其中之一。 Ant远非完美(XML语法有点笨拙),但它是well documented,非常稳定且非常简单。

如果您使用标准工具,例如Ant或Maven,您将能够利用任意数量的Continuous Integration产品。我怀疑你会发现许多可以与Visual Build一起使用。

大多数IDE支持Ant,因此它们为您提供各种GUI,您的CI服务器将为您提供用于构建的Web界面。

答案 8 :(得分:0)

NAnt(Ant的.NET端口)。效果很好,易于扩展。

答案 9 :(得分:0)

对于小型项目,我确实使用了后期构建脚本,并且在7z,Nsis和类似的CLI工具的支持下,它正在为我完美地完成工作。

答案 10 :(得分:0)

TeamCity和CuriseControl适用于任何项目,但这就是您希望选择TeamCity的原因: -

易于设置:在设置过程中,我们发现TeamCity更易于设置和使用,尤其是与CruiseControl相比。我们不需要编辑XML文件或大规模配置CruiseControl等单独的构建机器。

易于扩展性:TeamCity的易扩展性也很突出。如果我们发现构建在队列中等待的时间太长,我们可以添加更多计算机作为代理。我们唯一的另外工作是使用TeamCity服务器注册新计算机并安装msbuild和subversion。

与Subversion的交互:可以检查自上次构建以来谁提交了多少次以及哪些更改,以及启动构建等的。

答案 11 :(得分:0)

我非常喜欢scons来构建C ++文件。它非常简单,构建脚本是用Python编写的(这比一些黑客攻击DSL IMO要好得多)。

答案 12 :(得分:0)

AntMaven是很棒的构建工具。

如果您想自动化构建过程,可以使用一些很棒的工具,例如TeamCityBamboo

答案 13 :(得分:0)

我个人使用Makefiles几乎所有东西,因为它们很简单。但在我的工作中,我被迫使用蚂蚁。

我对ant的主要问题是,即使使用正确的缩进,XML也很难阅读和理解。另一方面,XML的详细程度可以帮助读取别人的ant文件,但是当文件超过几十行时仍然使它成为PITA。

至于建立一个GUI ......我一直觉得这是一个减号而不是一个加号。

答案 14 :(得分:0)

Maven对我来说是最好的,因为它处理项目依赖性