说明:Jenkins是部署在自己的电脑上的(windows系统),代码是在git上,测试环境是Linux系统
过程:
①使用Jenkins从git上拉取最新代码
②拉取代码后打包
③打包后发布到测试环境
④发布到测试环境后启动服务
1、Jenkins和JDK工具(在百度云中,本次使用的版本如下)
另外还需要git和Maven(在百度云中)
Jenkins下载地址:https://www.jenkins.io/
百度云:https://pan.baidu.com/s/1Au1nb6bkqMGa2T-fpMwzYg 提取码:69pz
JDK版本:1.8

Jenkins版本:2.303.3

注意:JDK和Maven需要配置环境变量
2、安装Jenkins
①打开终端->进入Jenkins目录下->输入命令:java -jar jenkins.war --httpPort=8080
②在浏览器中输入localhost:8080->打开Jenkins登录页面
③输入密码->安装默认的插件(不安装也可以,后期也可以安装)->进入Jenkins主页

3、安装Jenkins插件
Manager Jenkins->Manager Plugins,进入插件管理页面。在其他页面配置时如果缺少选项,需要先在这里安装插件
Manager Jenkins配置管理页面

Manager Plugins插件管理页面

安装插件时会报错:

将https改为http,重启Jenkins服务,然后去安装插件,安装时总是下载失败,多安装几次试试,或者使用不同的镜像地址安装,我安装时也是一直失败,换了好几个镜像地址,其中有一个镜像安装成功了一部分,我又把地址改为了当前的http://updates.jenkins.io/update-center.json,第二天来了安装又可以了
安装Jenkin插件的两种方式:
①直接下载,Manager Jenkins->Manager Plugins->Available->选中插件安装
②下载插件到本地,然后导入到插件管理中Manager Jenkins->Manager Plugins->Advanced->Upload Plugin->选择下载到本地的插件安装
插件下载地址:http://updates.jenkins-ci.org/download/plugins/
4、配置Jenkins
①配置全局变量 Manager Jenkins->Global Tool Configuration
配置Maven

配置JDK

配置Git

配置Maven

②配置凭证
添加git凭证:Manager Jenkins->Manager Credentials->golbal->Add Credentials

③配置SSH,Manager Jenkins->Configure System->Publish over SSH->SSH Servers

测试linux地址:在windows下通过ssh命令链接linux,# ssh root@ip,回车输入密码即可

5、创建项目
①新增项目


②配置项目,
配置General

配置Source Code Management

配置Build Triggers 和 Build Environment

配置Build
Goals: clean package -D maven.test.skip=true -P product,清class文件,打包构建,跳过测试,注意最后一个 -P product
配置完bilid后就可以立即构建了,会将代码拉取到本地并打包
生成的路径:C:\ProgramData\Jenkins\.jenkins\workspace\项目名称

配置Post-build Actions
配置完Post-build Actions,就能将本地的包上传到Linux服务器了,并可以启动服务

启动服务的命令一直不对,找了好久才找正确,不太清楚原因,使用最后一行直接在linux上启动是成功的,放到Jenkins中一直失败,出现了5个情况,第一个情况是分支代码上传错误,可先在linux上验证一下命令是否正确;第二情况是内存不够了,清理没用的日志;第三种情况,加上source /etc/profile,第四种情况,加上BUILD_ID=dontKillMe,第五种情况使用PIDS=`ps -ef | grep admin.jar | grep -v grep | awk '{print $2}'` for pid in $PIDS;do kill -9 $pid;done
source /etc/profile
BUILD_ID=dontKillMe
PIDS=`ps -ef | grep admin.jar | grep -v grep | awk '{print $2}'`
for pid in $PIDS;do kill -9 $pid;done
nohup java -jar -Xms120M -Xmx180M /opt/test/admin.jar >/opt/test/out &
6、Build Now立即构建
进入项目下->Build Now->Console Output

构建成功并启动项目验证一下就OK了,到此一个非常简单的部署就完成了。
在这里如果命令执行失败了不会在Jenkins日志里面体现出来,可以先到Linux服务器上执行一下命令看是否正确
立即构建出现了一种情况,就是构建过程中取消了构建,然后Jenkins服务就挂了,通过浏览器启动不了,就直接执行了java -jar jenkins.war,登录后发现项目全部都丢失了,解决方法见7
7、启动Jenkins
①命令:java -jar jenkins.war
②命令:net start jenkins
③浏览器中输入:http://localhost:8080/restart
使用命令java -jar jenkins.war启动,该方式以系统的java_home路径中的java程序来执行的,以web容器来启动。默认路径为在用户的目录生成.Jenkins目录作为默认工作目录【C:\Users\Administrator\.jenkins】
使用命令net start jenkins启动,该启动方式以Jenkins.exe作为宿主,采用windows服务的方式启动。 默认路径为由jenkins.xml配置中"JENKINS_HOME"所决定的,默认的工作目录是%ProgramData%\Jenkins\.jenkins【C:\ProgramData\Jenkins\.jenkins】。

使用前两种方式启动出现的问题:由于当时服务中断使用了两种不同的方式启动,导致出现了以上两个路径,且路径中都有登录密码,但两个密码是不一样的,其中一个密码可以登录,另一个不可以登录,登录后发现之前创建的项目都没了,考虑是不同的密码导致的,将密码改为相同的以后,在“任务管理器”中启动服务可以登录成功了,所以为了避免出现这个问题,最好将两个启动方式生成的目录配置成一致
8、关闭jenkins
命令:stop start jenkins
浏览器中输入:http://localhost:8080/stop
发布和回滚见:Jenkins在windows环境发布,回滚
参考:
Jenkins手册:https://www.jenkins.io/zh/doc/pipeline/tour/getting-started/
Jenkins页面介绍:https://blog.csdn.net/weixin_57720070/article/details/117981109
Jenkins安装、部署:https://www.cnblogs.com/lukelook/p/11221585.html
Jenkins插件安装:https://www.cnblogs.com/channy14/p/11556799.html
Jenkins启动:https://blog.csdn.net/xiangqiang2015/article/details/84583375
Maven构建工具介绍:https://www.cnblogs.com/Yalena/p/7019552.html
网友评论