10

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

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

在您的回答中,请包括:

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

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

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

-亚当

4

18 回答 18

11

缺点

构建脚本是 Python 脚本。应该在 Linux、Windows、Mac OS X 上工作。

于 2008-10-29T16:05:45.773 回答
7

南安特

http://nant.sourceforge.net/

类似于 Ant,.Net 的构建工具

于 2008-10-29T15:59:46.160 回答
6

Ruby 版本的 make

优点:

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

缺点:

  • 需要 ruby​​,但并不总是可用
  • 没有内置的打包支持/版本控制/依赖管理(参见ruby​​gems
于 2008-10-29T16:13:46.833 回答
5

预制

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

于 2008-10-29T17:02:27.500 回答
5

果酱家族。

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

于 2008-10-29T17:27:50.800 回答
4

GNU 制作

http://www.gnu.org/software/make/

于 2008-10-29T15:57:26.677 回答
4

阿帕奇蚂蚁

临:

  • 许多任务/插件
  • 在许多平台上运行
  • 很成熟
  • 许多 IDE、Continuous-Integration-Tools 等都支持它。

缺点:

  • 需要 Java
于 2008-10-29T15:58:50.310 回答
4

阿帕奇马文

优点:

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

缺点:

  • 陡峭的学习曲线(特别是与 Ant 相比)
  • 糟糕的在线文档(虽然新书很棒)
  • 有时令人惊讶的行为
  • 非常以 java 为中心
  • XML 配置驱动
于 2008-10-29T16:12:31.187 回答
4

制作

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

于 2008-10-29T16:53:47.673 回答
3

最终建造者

优点

  • 与 ant 或 make 不同,面向视觉和 GUI
  • 很多内置动作
  • 用于您自己的操作的脚本生成器
  • 与 cc.net 轻松集成

缺点

  • 仅在 Windows 上运行
  • 不是免费的,但您物有所值

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

于 2008-11-21T19:33:23.290 回答
3

团队城市

优点

缺点

  • 可能是内存密集型的
于 2009-04-15T12:48:01.303 回答
2

微软构建

http://msdn.microsoft.com/en-us/library/wea2sca5(VS.80).aspx

于 2008-10-29T15:59:51.430 回答
2

CruiseControl/CruiseControl .Net

http://cruisecontrol.sourceforge.net/

优点

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

缺点

  • 错误报告并不总是一种很好读的格式
  • 项目的设置应该经过深思熟虑,所有受监控的项目都应该使用某些模式来提高集成设置的效率。
于 2008-10-29T16:48:06.390 回答
2

PSake(发音为“清酒”)

优点 -

  • 电源外壳

缺点 -

  • 电源外壳 :)

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

于 2008-10-29T17:15:50.093 回答
2

缺点

优点:

  • 使用 Perl,如果你喜欢那种东西
  • 其他没用过:-)

缺点:

  • 很难谷歌!
  • 没有积极开发?
于 2009-04-26T11:22:39.967 回答
2

上勾拳-

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

优点 -

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

缺点 -

  • 仅适用于 .NET
于 2009-05-16T18:50:21.147 回答
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/

这是迄今为止我们见过的最好的构建工具!

于 2009-09-04T03:15:00.583 回答
1

烘焙文件

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

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

于 2009-11-03T22:44:20.977 回答