原来公司内部项目代码放在svn上,最近打算新项目放到公司的git上,但之前jenkins安装时没有一起安装git插件,导致现在安装git插件过时无法安装,从官网下载离线包也不知道哪个版本符合,随便下载了一个版本的git.hpi文件,结果安装时会自动安装依赖的插件,但依赖插件安装的是最新版本,导致git不兼容安装失败。而且更可恨的是自动安装的依赖会覆盖原有的已经安装的插件版本,造成原有的很多功能无法使用了,,,太坑了。。。无奈只好不得不升级jenkins版本,于是有了该篇记录。
更新其实非常简单,推荐官网(https://www.jenkins.io/download/)下载稳定版LTS(截止当前是v2.303.3版本),最新版jenkins.war(今天2021.11.16官网最新版本是v2.320)不稳定,可以参考这篇文章:https://www.cnblogs.com/dzblog/p/6962000.html
可能你jenkins.war存放的目录不同,找到自己的存放地址,先备份jenkins.war文件为jenkins.war.bak,再删除jenkins.war文件,然后把最新的jenkins.war文件上传(或直接下载)到对应目录启动即可。
从这个操作猜测原理,只是变更了jenkins的执行部分,并没有改变基本配置,所以登录账号密码还是原来的。
但是新版本之前的汉化包不起作用了,需要使用新版汉化方式。可以参照这篇文章:https://blog.csdn.net/u010960161/article/details/100154575 ,安装完后记得要重启生效哦~~
吐槽:最新版本的logo好不适应哦。。
远不如之前的版本一目了然。
进入系统管理,有几条警告,都可以忽略不用管。
此时去重新构建之前的一个maven项目,发行报错了。。。
又没改过代码,这个错应该是更新jenkins导致的,于是去更新插件,除了nodejs插件不更新(后来更新了下nodejs插件,结果原来的前端代码报错ERROR: Couldn’t find any executable in "/usr/*****",于是又还原回原来版本不更新就好了),其它全部更新,更新完后重启jenkins,再次构建成功了。。。
本次目的原来是要安装git插件的啊~~
在“系统管理——插件管理——可选插件”模块输入git查询过滤,安装git(有的版本是叫git plugin),奇怪的是在未安装时显示的是git,安装完后在已安装模块显示的是git plugin,因为git依赖git client,即使没有选中git client 安装的时候也会自动安装。安装很顺利我这里没出异常。安装完成重启jenkins即可。
然后创建git账号用于获取代码。这里我没使用key而是使用的账号密码,后面用key方式的时候再记录。
在“系统管理——manage credentials”,点击下面的store,再进入全局凭据配置。
原来创建的账号密码(比如我这里原来创建的svn账号)在新版本里默认不显示真实名称,而是和id同一个字段(如图中红框部分),可以按下面步骤更新为显示真实账号名称。
点击尾部的工具图标可更新账号。
如此就可以在创建新构建时选择git账号密码啦~~
后面的构建操作就跟svn的方式一样啦~~可以参考我其他的jenkins相关文章。
上面构建的是maven项目,从git拉取代码后构建成功没问题,现在我要测试前端构建。
之前的前端构建使用的nodejs版本是6.10至8.9之间,新项目要求nodejs版本需大于12,因为之前的nodejs是系统安装,然后在jenkins中全局配置时选择自己安装的路径,所以第一想法是怎么在系统里安装多版本nodejs,并在jenkins中配置多个自安装的node版本,找了很多资料都没有想要的答案,后来看到一篇豁然开朗,原来jenkins里安装的nodejs不会污染系统node,而是安装在jenkins自己管理的工具目录里,所以可以安装任意版本的nodejs而不冲突。感谢:https://www.jianshu.com/p/0a865a321d78
其实一开始我下载的是最新版jenkins(截止当前是2.320),但配置到后来全局安装多个版本nodejs的时候有问题,一点击“新增NodeJS”按钮整个nodejs配置都消失了,无奈只好重新换了当前稳定版本LTS。。。
我学聪明了,直接安装最新稳定版nodejs(截止2021.11.16是v16.13.0)。
全局配置的时候并没有安装,只是设置要使用的nodejs版本,真正在项目执行构建的时候才会去检测是否已安装需要的nodejs,没有安装就会在构建的时候先安装需要的nodejs。
构建的时候需要先选好项目对应的nodejs版本哦~~
至此,全部问题解决~~