前言:Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。(来源:百度百科)
个人理解(基于目前应用理解),能够在开发过程中,发布版本时能够一键完成:从git拉取指定分支最新代码,通过maven打包成jar/war包,然后上传到服务器,脚本形式重新启动,一整套流程,省去了人为的打包部署的繁琐流程,在开发调试过程提升效率。
1、安装Jenkins
windows安装包下载地址:https://mirrors.tuna.tsinghua.edu.cn/jenkins/windows-stable/2.263.3/jenkins.msi
默认安装之后(任务管理中可以启停),然后登录http://localhost:8080,第一次进入按照界面上的路径去复制密码,登录后设置默认账号,按照默认教程,默认插件安装。
注意:本人使用win10,安装过程中会询问是否账号:
如果觉得设置麻烦也可以使用第一个选项,一路默认下去。
2、安装插件
Manage Jenkins > Manage Plugins > 可选插件
1、GitLab(由于使用的是GitLab,因此需要安装该插件,正常git是不需要的(默认有安装))勾选,直接安装
2、Publish Over SSH(此插件用于链接服务器,讲打包好的包发布到服务器,并执行脚本启动服务)
3、配置环境
jdk、maven、git
Manage Jenkins > Global Tool Configuration
1、JDK
点击新增JDK,JAVA_HOME为机器上安装的环境变量。
2、maven
如同jdk,配置好环境变量。
3、git
与前两个者相似,但是需要注意的是git指向的指exe文件,并非文件夹。
保存/应用,进入下一步。
4、ssh
Manage Jenkins > Configure System
与前者不同,此处配置为系统配置。
拉到最底部,有一个SSH Servers选项,因为使用的是linux虚拟机,因此新增时只填默认项即可。(Use password authentication,or use a different key选中才能填密码)
4、创建job
1、可能版本问题,没找到maven项目的选项,于是就选了自有风格项目。
2、源码管理
此处采用的是ssh key 的方式,因为不是用机器的管理员,没法获取本地的账户密钥。
3、生成SSH KEY过程
1.查看是否已经有了ssh密钥:cd ~/.ssh
如果没有密钥则不会有此文件夹,有则备份删除
2.生成密钥:
$ ssh-keygen -t rsa -C "邮箱"
按3个回车,密码为空这里一般不使用密钥。
最后得到了两个文件:id_rsa和id_rsa.pub
3.pub为公钥,需要配置在git服务器上
4.私钥配置
5.配置maven
往下继续,选中构建 > 选择Invoke top-level Maven targets > 然后选择之前配置的mvn,然后命令执行分别为clean package
6.配置ssh/服务器配置/脚本
6.1:首先SSH Server选的是上述3、环境配置中配的ssh 服务器
6.2:Transfers下Source files说明:此处为源码目录,具体为此处创建的job下的(例如job名为test,那么就是jenkins下名为test的job目录下的结构,具体需要指向生成的jar/war包),图中为多模块项目,因此指向的为指定模块下target下的jar包。
6.3:Remove prefix,此处配置为需要删除的目录,其实就是发布完商城编译文件。
6.4:Remote directory,因为环境配置中配置的目录为/usr/local/jar(jar包运行的目录/工作目录),所以可以放空。(可以指定目录)
6.5:Exec command,该项为文件(jar包)上传成功之后需要配置的shell脚本了
首先是正常重新发布:
//需要加此行,解决无法启动jar包的问题
source /etc/profile
cd /usr/local/jar
ps -ef | grep test-1.0-SNAPSHOT.jar|grep -v grep |awk '{print $2}'|xargs kill -s 9
nohup java -jar test-1.0-SNAPSHOT.jar > nohup_log.file 2>&1 &
但是本次为首次发布,使用上述脚本有个问题是没有正在运行的进程,所以语句会执行失败导致服务无法启动,因此如果为首次发布应使用如下脚本:
//需要加此行,解决无法启动jar包的问题
source /etc/profile
cd /usr/local/jar
nohup java -jar test-1.0-SNAPSHOT.jar > nohup_log.file 2>&1 &
5、执行部署
在工厂下选中执行Build Now,
可以进入查看编译日志
可以进入服务器查看是否成功。
浏览器访问启动的服务:
至此,jenkins整合java jar包自动化部署配置完成,此后代码部署只需要登录jenkins服务进行build即可更新。