【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反而不生效,甚至之前生效的配置也报错了。有知道是怎么回事的可以留言讨论一下
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/772724.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flask python :logging日志功能使用

logging日志的使用 一、了解flask日志1.1、Loggers记录器1.2、Handlers 处理器1.3、Formatters 格式化器 二、使用日志2.1、官网上的一个简单的示例2.2、基本配置2.3、具体使用示例2.4、运行 三、写在最后 一、了解flask日志 日志是一种非常重要的工具,可以帮助开发…

pandas 函数

pandas是基于numpy数组构建的,但二者最大的不同是pandas是专门为处理表格和混杂数据设计的,比较契合统计分析中的表结构,而numpy更适合处理统一的数值数组数据。pandas数组结构有一维Series和二维DataFrame。 Series的字符串表现形式为&#…

java Web线上网游商品交易平台用eclipse定制开发mysql数据库BS模式java编程jdbc

一、源码特点 jsp线上网游商品交易平台是一套完善的web设计系统,对理解JSP java SERLVET mvc编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,eclipse开发,数据库为Mysql5.0…

Spark SizeTrackingAppendOnlyMap 相关源代码分析

SizeTrackingAppendOnlyMap 在 ExternalAppendOnlyMap 中使用,当 map 中对象占用的内存大小超过一定阈值时,把 数据 spill 到磁盘。所以 SizeTrackingAppendOnlyMap extends AppendOnlyMap[K, V] with SizeTracker。 AppendOnlyMap AppendOnlyMap 是只…

ssh免密登陆实现

1. 本地客户端生成公钥和私钥 使用以下命令,然后一路按回车键使用默认值即可。 ssh-keygen -t rsa -C "My-SSH"// -t 表示ssh的密钥类型,常用的有:rsa、ed25519、dss。 // -C 名称标识,此值随意。 会在用户根目录下的…

基于springboot的交通管理在线服务系统的开发

传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装交通管理在线服务系统软件来发挥其高效地信息处理的作用&#xff0…

【LAMMPS学习】四、运行 LAMMPS(4) Windows 运行 LAMMPS

4. 运行 LAMMPS 本部分解释了在安装可执行文件或下载源代码并构建可执行文件后如何运行 LAMMPS。命令文档页面描述了输入脚本的结构以及它们可以包含的命令。 4.1.运行 LAMMPS 的基础知识 4.2.命令行选项 4.3.屏幕和日志文件输出 4.4.在 Windows 上运行 LAMMPS 串行&am…

【数据结构】常见线性结构

1.线性表 线性表 ( linear list ) 是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使 用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串... 线性表在逻辑上是线性结构,也就说是连续的一…

结构体-C语言

目录 前言 一、定义结构 结构体变量的创建和初始化 二、结构的特殊声明 特别注意: 结构的⾃引⽤ 三、结构体内存对⻬ 对⻬规则 优化结构体 #pragma 结构体传参 四、结构体实现位段 位段的内存分配 位段的跨平台问题 前言 C 数组允许定义可存储相同类…

Fiddler抓包工具之fiddler的常用快捷键

一、常用三个快捷键 ctrlX :清空所有记录 CtrlF:查找 F12:启动或者停止抓包 使用 QuickExec Fiddler2 成了网页调试必备的工具,抓包看数据。Fiddler2自带命令行控制。 fiddler 命令行快捷键:ctrl q ,然后 输入 help…

题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? There is no nutrition in the blog content. After reading it, you will not only suffer from malnutrition, but also impotence. The blog con…

约瑟夫环问题(队列,链表实现)- c++

1.关于约瑟夫问题 约瑟夫斯领导犹太人反抗罗马帝国的统治,在与罗马军队的激烈战斗中,与士兵们一同被困在一个山洞里。总共有41人,约瑟夫斯希望向罗马军队投降,但他的士兵们却坚决拒绝,宁愿死也不愿被敌人俘虏。面对这…

如何理解React的state、props、super()和super(props)

state 一个组件需要显示什么,怎么显示内容,都是由数据状态和外部参数决定的。 state就是这个数据状态。 当需要修改状态值的时候,通过调用setState,实现更新组件内部数据的问题。 setState的第一个参数有两种形式:…

电路常识:干接点、湿接点

1、干接点、湿接点的区别: 干接点和湿接点:是对开关量说的,即:通断。 干接点是一种无源开关,具有闭、合(导通、断开)两种状态,两个接触点之间没有极性可以互换。 常见的干接点&am…

数据分析---SQL基础

目录 什么是关系型数据库其他种类的数据库关系型数据库的基本操作数据库设计ER模型什么是关系型数据库 SQL(Structured Query Language)是用于管理关系型数据库的标准化查询语言。关系型数据库是一种基于关系模型(即表格)的数据库,它使用结构化查询语言(SQL)来管理和操作…

国家中英文名称、国家代码(地区代码)、国家域名、经纬度

因为要做世界地图对世界国家的标点,搜索使用到了世界各个国家的地理位置信息,此处做备份与学习。资源地址(免费) export default {"阿尔巴尼亚": {"m_longitude": "19.809","m_latitude&quo…

React项目打包优化-包体积分析

1、什么是包体积分析? 通过可视化的方式,直观的看到各种包打包之后的体积大小,方便后续针对体积情况做优化 2、怎么分析包? 借助插件 source-map-explorer, 1、先安装插件 npm install source-map-explorer 2、在p…

简明 Python 教程(第5章 函数)

本章介绍了函数的基本概念和使用方法,包括定义函数、传递参数、局部变量、全局变量、默认参数、关键字参数、返回值和文档字符串。 掌握这些概念对于编写结构化和可维护的Python代码至关重要。 定义函数 使用def关键字 定义函数始于def关键字,它告诉P…

php 快速入门(五)

一、文件上传 文件上传的基础知识&#xff1a; 首先&#xff0c;在客户端form表达设置&#xff0c;选择上传的文件然后&#xff0c;在服务器对上传文件进行操作处理 1.1 关于前台页面 必须设置 form 表单项&#xff1a; <html><head><title>文件上传<…

Python+Pytest+Allure搭建接口自动化测试框架

最近在用PythonPytestAllure搭建接口自动化测试框架 具体的框架要求&#xff1a; 1&#xff0c;使用Pytest进行测试用例编写和执行 2&#xff0c;使用Allure生成漂亮的测试报告 3&#xff0c;并且要求有断言方法 初步的框架设计如下&#xff0c;后期可以进一步添加很多功能…