【问题标题】:Integrating an eclipse/cdt-based build into continuous integration将基于 eclipse/cdt 的构建集成到持续集成中
【发布时间】:2012-06-22 14:19:36
【问题描述】:

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

我想将该构建集成到持续集成服务器(即 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

但这还不够:

  • 构建是异步的:之前的命令返回(它实际上是分叉的),而我希望它保持上下文直到我得到结果(就像它在 linux 上使用 make 或在 Windows 上使用 devenv 一样)
  • 我无法提取构建日志(最好将它们放在一个文件中):要集成到我的连续信息中,我需要能够解析我的构建日志以显示有趣的信息(想想损坏的文件)
  • 理想情况下,我想从 Eclipse 获得指示通过或失败的直接状态(返回代码)。

知道如何有这种行为吗?

注意:

  • 目前不能选择使用备用(外部)构建系统(我必须保留 cdt 托管构建,它有很多复杂的历史)
  • 我已经查看了堆栈溢出和 google 并没有设法找到解决方法,尽管我的需求显然很简单
  • 我目前使用的是 windows 7 / mingw 4.5.2 / Eclipse IDE for C/C++ Developers 版本:Indigo Release Build id: 20110615-0604 但我认为问题是 x 平台

【问题讨论】:

    标签: eclipse jenkins eclipse-cdt


    【解决方案1】:

    看起来如果我从 cmd 交互式启动 eclipse,它会分叉,如果从 bat 脚本启动,它不会。所以把前一行放在 jenkins 中就足够了。

    注意事项:

    • 您需要添加-data 参数来定义工作台的位置(我每次都清理构建)
    • 像往常一样,责怪窗口并加上引号....
    • --launcher.suppressErrors :如果出现问题,防止 Eclipse 显示弹出窗口(实际上没有显示,因此会阻止构建)

    最终(工作!)命令:

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-29
      • 1970-01-01
      • 2015-07-14
      • 2011-07-13
      • 2019-12-14
      • 2010-09-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多