【jenkins+cmake+svn管理c++项目】Windows环境安装以及工具配置

一、目标和环境

目标:搭建一个jenkins环境,实现jenkins调用cmake和svn和VS编译c++项目,并将生成的库上传svn。

环境:win10虚拟机(练习流程用,正式用的话还是放到服务器),VS2017.

二、安装Jenkins

从官网下载适合windows系统的安装包,我下载的是最新版的2.426.3 msi文件,这个版本支持的JDK版本是11/17。JDK1.8的朋友需要下载一个相应版本的JDK并且设置好系统环境变量。过程没有截图,基本上参考这个帖子就可以了。(我url用的是localhost:8080)
https://blog.csdn.net/xiaoxin_OK/article/details/122441071

三、下载SVN插件

工作台左侧点击Manage Jenkins --> plugins -->Available plugins中搜索SVN(subversion)然后点击下载。如图(我安装过了所以在Installed里边)

另外,如果编译完成之后要将内容回传到SVN,需要SVN Publisher plugin插件,这个插件可能在jenkins的插件管理里边找不到,找不到的话就需要自己去找资源下载,是一个svn publisher plugin.hpi , 然后点开插件管理的advanced setting部分,在其中的部署插件部分,选择你下载好的hpi文件上传就可以了。

四、安装cmake和MSBuild插件

  • 一般在windows环境编译c++程序是先通过cmake 的gui生成sln文件,在通过VS打开sln进而编译。那既然现在要用Jenkins来管理,就要通过命令行代替cmake和vs的客户端来完成这些工作。cmake本身支持命令行,而VS的工作需要通过MSBuild来完成。(如果你使用mingw或者别的进行编译,就换成你相应的插件)。
  • jenkins使用cmake和msbuild的时候不仅要在网页版上面安装插件,还要在jenkins服务器上面安装这两个东西,真正的编译工作是有服务器上安装的工具完成的。所以在网页上操作之前现在服务器上配置好,确保在服务器上能使用它们正常工作。
    可以参考我之前的这一篇:windows系统通过命令行调用cmake和vs编译c++项目
  • Manage Jenkins --> plugins -->Available plugins中搜索cmake和MSBuild插件下载,下载完成后点击Manage Jenkins --> Tools,这个里边主要是管理你下载的各种工具,可以将服务器上下载的cmake和msbuild可执行程序的路径记录在这里,以便jenkins能找到它们。
  • 在jenkins上构建一个项目编译时如果报错"cmake:cmake不是内部或外部命令,也不是可执行程序"可能的原因:服务器上cmake没有安装或者没有配置好系统环境变量Path, 或者jenkins找不到cmake,通过下图的设置可以让jenkins找到它)


配置好之后,可以重启一下jenkins服务以便这些配置起作用。重启的方式:

在服务器端打开cmd,cd到jenkins.exe所在的目录,然后:stop停止服务,start启动服务,restart==重启。

!!这里有一点问题:我使用先stop再start的方式配置生效,直接restart反而不生效,甚至之前生效的配置也报错了。有知道是怎么回事的可以留言讨论一下

相关推荐
念恒123061 小时前
继承(下) (Inheritance)
c++
H Journey2 小时前
C++之 CMake、CMakeLists.txt、Makefile
开发语言·c++·makefile·cmake
研究点啥好呢6 小时前
Github热门项目推荐 | 创建你的像素风格!
c++·python·node.js·github·开源软件
_dindong6 小时前
cf1091div2 C.Grid Covering(数论)
c++·算法
沫璃染墨7 小时前
C++ string 从入门到精通:构造、迭代器、容量接口全解析
c语言·开发语言·c++
6Hzlia7 小时前
【Hot 100 刷题计划】 LeetCode 17. 电话号码的字母组合 | C++ 回溯算法经典模板
c++·算法·leetcode
计算机安禾8 小时前
【数据结构与算法】第36篇:排序大总结:稳定性、时间复杂度与适用场景
c语言·数据结构·c++·算法·链表·线性回归·visual studio
unicrom_深圳市由你创科技8 小时前
做虚拟示波器这种实时波形显示的上位机,用什么语言?
c++·python·c#
无限进步_8 小时前
【C++】电话号码的字母组合:从有限处理到通用解法
开发语言·c++·ide·windows·git·github·visual studio
C++ 老炮儿的技术栈8 小时前
GCC编译时无法向/tmp 目录写入临时汇编文件,因为设备空间不足,解决
linux·运维·开发语言·汇编·c++·git·qt