适用于Visual Studio MSBuild的现代化构建工具

4

我对构建自动化和持续集成还比较新,但已经对这个主题进行了广泛的研究。

首先是问题:假设我有一个未管理的Visual C++ .sln文件,并且可以使用MsBuild构建它,那么我应该选择哪个现代的构建工具,以便能够轻松执行构建前/后步骤?

我不想要像Ant、Nant、make这样“旧”的构建工具,因为它们的XML混乱。我希望找到一些可以让我用人类可读的方式自由表达我的意图的东西。根据我的研究,似乎Waf、Scons和Rake可能符合要求。

我的环境背景如下: 我的源代码控制是Subversion。 我的单元测试框架是GoogleTest,它生成JUnit兼容的XML文件。 我选择了JIRA作为我的跟踪工具。 我选择了TeamCity作为我的CI服务器。 我使用Visual Build来构建我的.sln文件。

我想编写一个简单的构建脚本(可从我的CI服务器调用),它将:

1)创建一个CI服务器工作目录。
2)从SVN检出代码。(我的仓库设置为使用svn:externals从我的其他仓库拉取依赖项)
3)运行Visual Build构建文件以构建.sln中的所有项目/平台组合。
4)运行静态代码分析/动态代码分析工具
5)从MsBuild收集结果(无论是编译失败、静态/动态代码分析警告还是单元测试失败等),用于CI服务器。
6)CI服务器记录这些并将其链接到JIRA。


使用MSBuild和C++项目确实很麻烦,因为.vcproj不像.csproj一样是本机的MSBuild格式,而是由MSBuild以特殊方式处理。 - mmmmmmmm
我不确定你的意思。我有一个包含多个项目的.sln文件。要编译它,我只需键入msbuild <name>.sln,就可以完美运行。 - sivabudh
你的实际问题是什么?你似乎已经定义了答案。 - Simeon Pilgrim
我的真正问题是:对于我的构建脚本,我应该选择哪个现代工具:Rake、Waf还是Scons? - sivabudh
3个回答

4

除了编译代码外,Visual Build 还可以用于提取源代码和运行分析工具(并且具有漂亮的 GUI,可以隐藏任何“xml 混乱”)。您的 CI 服务器应该有一种方法将外部日志集成到构建中。


4

Hudson是一个Java构建工具,具有MSBuild和Nant插件。还提供了一些插件,包括fxcop和C#开发人员使用的一些有趣的单元测试库。

我认为它是市场上最好的免费构建工具之一。它还可以调用命令行应用程序等。

http://wiki.hudson-ci.org/display/HUDSON/Installation+and+Execution 卡尔


3

针对其他像我一样查找此页面的人,以下是与CI构建服务器相关的工具:

  • Pulse
  • TeamCity
  • AnthillPro(非常专业,但需要学习的内容也很多)
  • CruiseControl

Pulse和TeamCity可以使用msbuild构建sln。它们还拥有许多不错的功能,我在10多个工具中发现它们是最佳的CI服务器。易于管理,支持良好,功能齐全。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接