【问题标题】:"CruiseControl" Automation for C++ projects?C++ 项目的“CruiseControl”自动化?
【发布时间】:2011-01-23 09:08:20
【问题描述】:

我们有一个 C++ 项目,目前使用 Linux 上的 Make 进行构建。我想自动化它,类似于 CruiseControl 下的 Java 项目。

1) 有没有类似 CruiseControl for C++ 项目的项目?

2) 在 C++ 项目中使用 CruiseControl 是否有很好的“操作方法”?

【问题讨论】:

标签: c++ automation continuous-integration hudson cruisecontrol


【解决方案1】:

我一直在考虑在 Linux 上为 C++ 项目设置 CruiseControl,但遇到了Hudson。它有一个文件/一个命令行设置,您可以启动并运行。管理访问是通过漂亮的 Web 界面进行的。我强烈推荐它。

与 CC 相比,Hudson 似乎更易于设置和管理,而且您可以通过插件访问构建静态、错误/警告(放入目录中并且它们可用),并且您可以将其设置为在构建失败时自动发送电子邮件。

我已经为每个项目目录创建了调用 make 的 shell 脚本。我指示哈德森运行该脚本。构建是通过类似设置的 cron 设置的 - 通过 Web 界面设置。 我让它每 30 分钟检查一次代码更改,并从 perforce 和重新编译中获取构建。

如果您不确定,请尝试一下。只需几分钟即可启动并运行。我下载了它,因为我想看看我们当前的构建设置有什么可能,我从来没有回头,它已经运行了将近一年,没有任何问题。

【讨论】:

    【解决方案2】:

    我不知道 CruiseControl,因为我们使用的是 TeamCity,但 CruiseControl 应该能够执行命令行构建,即只需调用 Make。这没什么不好。在 TeamCity 中,甚至可以轻松地将进度通知添加到 make 文件(只是以特定格式输出),因此它与“原生”项目并没有太大区别。我不知道 CruiseControl 在这方面能走多远。

    我们有一个大型 C++ 项目,使用 CMake 构建,在命令行上运行,它甚至可以正确报告单元测试结果(使用 Boost::Test)。

    哦,如果 CruiseControl 不支持命令行运行器或 Java 以外的项目类型,您应该看看 TeamCity 作为替代品。

    【讨论】:

      【解决方案3】:

      我们正在运行 Hudson 来构建 C++ 和 Java 代码的混合体,它运行良好。与 CruiseControl 相比,Hudson 的一个优势是拥有完整的 Web 界面,因此您无需手动编辑任何 XML 文件。

      【讨论】:

        【解决方案4】:

        我们将 CruiseControl 用于 C++ 项目。我们只是使用 exec 在 Ant 脚本中执行 devenv.com 来构建解决方案。

        【讨论】:

          【解决方案5】:

          我们正在使用cruisecontrol 来构建我们的 C++ 和 Java 项目。我们的 C++ 项目使用 SCons 而不是 make,我们只需通过 exec Ant 任务从 Cruisecontrol Ant 脚本调用 scons。

          【讨论】:

            猜你喜欢
            • 2010-10-14
            • 2012-11-14
            • 1970-01-01
            • 2010-09-07
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-09-15
            • 2021-04-16
            相关资源
            最近更新 更多