当前位置: 首页 > 面试题库 >

将基于Eclipse / cdt的构建集成到持续集成中

丁和歌
2023-03-14
问题内容

我必须使用CDT,mingw和cdt管理的构建功能(没有外部makefiles或构建环境)来重用当前在eclipse中开发的主要C
++项目。该项目本身由许多子项目组成。

我想将该构建集成到一个连续集成服务器(即jenkins)中,因此必须能够自动化无头构建。

到目前为止,我设法签出了该项目(从jenkins轻松完成),并使用以下命令使用eclipse以无头模式构建它:

C:\prog\EclipseCdt\eclipse -nosplash -application org.eclipse.cdt.managedbuilder.core.headlessbuild -import %WORKSPACE%\project1 -import %WORKSPACE%\project2 -import %WORKSPACE%\project3 -build all

但是还不够:

  • build是异步的:之前的命令返回(实际上是派生的),而我希望它保持上下文,直到得到结果为止(就像make在Linux或devenvWindows上那样)
  • 我无法提取构建日志(理想情况下将其保存在文件中):要集成到我的连续信息中,我需要能够解析构建日志以显示有趣的信息(考虑损坏的文件)
  • 理想情况下,我想从Eclipse获得指示通过或失败的直接状态(返回代码)。

任何想法如何有这种行为?

注意:

  • 当前无法使用备用(外部)构建系统(我必须保留cdt托管的构建,它具有很多复杂的历史记录)
  • 尽管我的需求显然很简单,但我已经研究过堆栈溢出和google并没有设法找到一种方法
  • 我目前在Windows 7 / mingw 4.5.2 /用于C / C ++开发人员的Eclipse IDE中:Indigo发行版本ID:20110615-0604,但我认为问题是x平台

问题答案:

看来如果我以交互方式从cmd启动eclipse,它会分叉,如果是从bat脚本启动,则不会。因此,将前一行放在詹金斯中就足够了。

笔记:

  • 您需要添加-data参数来定义工作台的位置(我每次都会清理构建)
  • 像往常一样,怪罪窗户并加引号。
  • --launcher.suppressErrors :万一发生什么事情,防止日食显示弹出窗口(实际上不显示,因此构建块)

最终(工作!)命令:

C:\prog\EclipseCdt\eclipse --launcher.suppressErrors -nosplash -data "%WORKSPACE%" -application org.eclipse.cdt.managedbuilder.core.headlessbuild -import "%WORKSPACE%\project1" -import "%WORKSPACE%\project2" -import "%WORKSPACE%\project3" -build all

编辑

  • 添加了–launcher.suppressErrors


 类似资料:
  • translated_page: https://github.com/PX4/Devguide/blob/master/en/test_and_ci/continous_integration.md translated_sha: 95b39d747851dd01c1fe5d36b24e59ec865e323e PX4 Continuous Integration PX4 builds and

  • 我们做的还不够好,先占个坑。 欢迎贡献章节。

  • 注意有关编写测试的建议, 请参阅 Testing Your Code. Why? 与 Kent Beck 一起撰写关于 持续集成 (简称 : CI ) 的 Martin Fowler 对 CI 进行了如下的描述: 持续集成是一种软件开发实践,团队成员经常整合他们的工作,通常每个人至少每天集成一次 - 导致每天进行多次集成。 每个集成都通过自动构建(包括测试)进行验证,以尽快检测集成错误。 许多团队

  • 对应于 Ruby 的一个或多个版本,你很轻松就可以测试你的网站构建。以下指引将展示怎样在 Travis 上建立一个免费的,集成了处理 pull 请求的 GitHub 的构建环境。如果你使用私有代码库的话,也有相应的付费选择。 1. 启用 Travis 以及 Github 启用 Travis 来构建你的 Github 代码库非常简单: 前往你在 travis-ci.org 的个人档案: https:

  • 持续集成的目的,是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。由于我们的代码托管在github上面,所以选择Travis CI来做持续集成是一个不错的选择。 要触发构建工作,需要在项目根目录下面添加一个.travis.yml的文件: sudo: required services: - docker e

  • 问题内容: 如何建立持续集成标签而不是分支的实践? 我具有标签存储库目录的以下结构: 我想配置我的持续集成工具(可以是CruiseControl,Hudson和Jenkins到TeamCity的任何工具),以在两个文件夹中的任何一个中创建了最新标记。 例如,如果结构已更改并且标签已出现在目录中,我想触发标签下的源代码构建: 是否可以使用任何现有的持续集成工具在标签下构建源代码,或者为此目的我应该编