公司一直在使用jenkins一键部署,我决定在服务器上也搭建一套,用于智选网项目的一键部署,然而这个过程确实有些曲折,花费了我许多时间,有点小小的坑。
由于服务器是windows的,原本是计划采用通用的war包部署,可是启动之后,提示SSL错误
即使我按照网友的解决方案hudson.model.UpdateCenter.xml文件的https修改为http,启动后还是不能正常更新插件。而使用官网上下载的最新版本,无论是war包版本还是windows的msi版本均不能够正常使用。参考了公司的安装包以后之前同事发的教程和资料,安装包大小都和官网上下载的不一样大,官网的只有六七十兆,而资料中的安装包有一百多兆。
一开始,想用教程资料中的安装包,是2.164.2版本的msi包,安装过程也均正常,问题出在plugins安装上面了,在线更新的插件其中有个SSL的需要jenkins版本比较高,低版本的不支持,装不好就没办法使用。
后来又换到了公司的jenkins版本,是2.235.1版本的msi包,采用在线安装插件的方式,同样有部分没安装好。实在没招了,我直接将公司环境下的plugins拷贝到服务器的jenkins目录下,这才解决了问题。我觉得可能还是配置的问题,先不花时间研究了,先以这样的方式用起来再说。在文章底部,分享下我目前使用的msi包和对应的plugins包。
接下来,看看具体如何配置一个一键部署的任务吧。
一、参考官网的jenkins安装,其中需要注意的就是更改插件的地址为http://mirror.xmission.com/jenkins/updates/current/update-center.json。
二、创建一个任务
1、输入任务名称,选择freestyle project
2、源码管理,选择subversion,也就是svn,输入仓库地址,填写credentials凭据,使用用户密码的方式,check-out Strategy选择图中模式
3、构建步骤中,选择invoke top-level Maven targets
4、填写maven命令 此处无需加mvn直接写后面的命令即可,在之后的步骤中,添加两个windows命令的步骤
配置bat文件路径
5、编写bat命令
copy.bat
@echo off echo 复制jar包,并覆盖 set Path=E:\zxw e: cd E:\jenkins\workspace\zxw\zxw for /f "delims==" %%a in ('dir /b /s *zxw-admin.jar')do copy /y "%%a" %Path% ::/f参数使其分析dir命令的输出结果,并用dir 的/s参数搜寻子目录 echo 复制完成
server.bat
@echo off echo **************************************** echo 启动智选网 set procedure=9999 for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%procedure%"') do ( echo kill the process %%m who use the port %procedure% taskkill /f /pid %%m ) timeout 10 C:\Windows\System32\sc start zxw-admin echo ****************************************
两个bat命令主要用于复制jar包和启停服务
三、构建效果
资源下载:
发表评论