可用的构建工具(make等)?

时间:2008-10-29 15:54:01

标签: build

关于各种利基构建需求(.NET,持续集成等),这里有很多问题,但当然,我的利基需求是不同的。

我现在不想问一个非常具体的问题,而是想对可用的构建工具(例如make,ant等)进行调查,以便在需要时更智能地提出跟进问题。

在你的回答中,请包括:

  • 一个构建工具
  • 链接到有关该工具的主页
  • 如果您了解一些优点和缺点(例如,在带有cygwin或特定于.NET的Windows上运行等),请列出一些(不是必需的 - 名称和链接是必需的)

如果您的构建工具已经在答案中,请对其进行评论,添加优缺点/限制/体验。只要它们不存在,您可以随意添加尽可能多的答案 - 但不要将几个构建工具放在一个答案中。

请注意,如果您复制答案,可能会被低估 - 在评论中添加有关给定构​​建的其他信息。理想情况下,这些评论将随着时间的推移纳入答案。

- 亚当

18 个答案:

答案 0 :(得分:11)

SCons

构建脚本是Python脚本。适用于Linux,Windows,Mac OS X.

答案 1 :(得分:7)

<强>恶性

http://nant.sourceforge.net/

类似于Ant,一个.Net

的构建工具

答案 2 :(得分:6)

Rake

Ruby的make版本

优点:

  • 清洁惯用的ruby语法
  • Rake文件是用ruby编写的,因此利用ruby本身而不是专有文件格式或XML
  • Ruby on Rails与它紧密集成

缺点:

  • 需要ruby,但并不总是可用
  • 没有内置打包支持/版本控制/依赖关系管理(请参阅rubygems

答案 3 :(得分:5)

Jam家族。

BJam基于FTJam,后者又基于Jam。小巧,快速,便携。 C,C ++的自动依赖性分析。它不是生成器 - 它不为辅助构建系统生成任何Makefile或其他构建文件。

答案 4 :(得分:5)

premake

构建脚本生成器。使用Lua来描述构建。它可以为Visual Studio,Code :: Blocks,CodeLite,SharpDevelop,MonoDevelop等生成Makefile或项目文件。内置支持C,C ++,C#,包括资源和ASP.NET等。单声道支持。

答案 5 :(得分:4)

Apache Ant

临:

  • 许多任务/插件
  • 在许多平台上运行
  • 非常成熟
  • 受到许多IDE,Continuous-Integration-Tools等支持。

缺点:

  • 需要Java

答案 6 :(得分:4)

CMake

跨平台构建系统生成器。它可以为Visual Studio,Eclipse CDT,KDevelop,Code :: Blocks等生成Makefile或项目文件.C,C ++,Fortran,Java的自动依赖性分析。

答案 7 :(得分:4)

Apache Maven

优点:

  • 自动依赖关系管理
  • 利用约定优于配置(强制执行一致的项目目录结构)
  • 使用maven的项目可以在几分钟内构建
  • 对标准java / Java EE项目构建的出色支持
  • 在团队环境中运作良好(支持“团队”配置)
  • 内置版本/版本控制概念
  • 与流行的Java IDE集成
  • 在java OSS社区中不断增长的支持

缺点:

  • 陡峭的学习曲线(特别是与Ant相比)
  • 糟糕的在线文档(新的book非常出色)
  • 有时令人惊讶的行为
  • 非常以java为中心
  • XML配置驱动

答案 8 :(得分:4)

答案 9 :(得分:3)

FinalBuilder

赞成

  • 与ant或make
  • 不同,视觉和GUI导向
  • 许多内置动作
  • 自己动作的脚本构建器
  • 轻松与cc.net集成

缺点

  • 仅在Windows上运行
  • 不是免费的,但是你的钱很有价值

他们还有一个名为Automise的工具,可以执行更多面向系统的任务。

答案 10 :(得分:3)

Team City

赞成

缺点

  • 内存密集型

答案 11 :(得分:2)

CruiseControl / CruiseControl .Net

http://cruisecontrol.sourceforge.net/

<强>赞成

  • 可根据所选版本使用各种构建和TDD工具
  • 在构建发生时自动执行什么类型 - 完整版本构建或更改代码构建
  • 可以在构建上自动运行测试(nUnit,jUnit,Fitnesse等),以确保在将新代码签入项目时所有测试仍然通过。
  • 与源代码管理集成
  • 构建失败时报告错误并发出通知

<强>缺点

  • 错误报告并不总是很好看的格式
  • 应仔细考虑设置项目,并且所有受监控的项目都应使用某些模式,以提高集成设置的效率。

答案 12 :(得分:2)

答案 13 :(得分:2)

PSake(发音为“Sake”)

优点 -

  • Powershell的

缺点 -

  • Powershell:)

这个项目相当新,看起来很有趣,并且功能非常强大,因为它是“.NET命令行”。不幸的是,我不知道有多少人花时间学习Powershell。

答案 14 :(得分:2)

cons

优点:

  • 如果您喜欢那种东西,请使用Perl
  • 没有使用它,否则:-)

缺点:

  • 难以Google for!
  • 没有积极开发?

答案 15 :(得分:2)

UppercuT -

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

优点 -

  • 超级易上手 - 自动构建就像(1)解决方案名称,(2)源控制路径,(3)大多数项目的公司名称一样简单!!!
  • 对必要的NAnt知识有限。

缺点 -

  • 仅适用于.NET

答案 16 :(得分:1)

NUBuild (发音为“New-Build”)

这是最新且非常先进的.Net构建工具(非常智能的),称为NUBuild,允许您构建VB.Net和C#项目。它非常轻巧,开源,同时易于安装,几乎无需维护。

  • 易于使用的命令行界面
  • 能够定位所有.Net框架版本,即1.1,2.0,3.0和3.5
  • 支持基于XML的配置
  • 支持项目和文件引用
  • 自动为给定项目生成“完整订购的构建列表”
  • 能够检测并显示循环依赖关系 执行并行构建
  • 处理代理程序集的能力
  • 与Cruise-Control.Net持续集成系统轻松集成
  • 版本管理功能
  • 通知功能

http://nubuild.codeplex.com/

到目前为止,我们看到的构建工具是最好的!

答案 17 :(得分:1)

Bakefile

Bakefile是跨平台,交叉编译的本机makefile生成器。它将构建任务的编译器独立描述(XML)作为输入,并生成本机makefile(autoconf的Makefile.in,Visual C ++项目,bcc makefile等)。

Bakefile的任务是生成本机makefile,以便人们可以继续使用自己喜欢的工具。还有其他跨平台的make解决方案,但它们要么不是原生的,要么用户使用不熟悉的工具(Boost.Build),要么它们太有限(qmake)。