Jenkins安装并部署Java项目完整流程

介绍centos系统上安装Jenkins部署Spring Boot项目流程 , 并通过github Webhooks通知Jenkins代码更新信息并自动重新部署项目 。
准备环境
  • JDK1.8
yum install JAVA-1.8.0-openjdk* -yjava -version能显示版本即安装成功 , 无需再配置环境
  • Maven
个人的Maven安装目录是/usr/bin/maven:
mkdir /usr/bin/mavenwget http://mirror.bit.edu.cn/Apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gztar xzvf apache-maven-3.6.3-bin.tar.gzcd /usr/bin/maven/apache-maven-3.6.3/conf将settings.xml仓库更改为阿里云仓库并配置服务器仓库路径 , 如本地已有Maven配置文件 , 直接把本地文件上传到服务器并更改仓库路径即可(推荐一款有理想的国产SSH工具-FinalShell , 可直接拖到文件到指定文件夹)
Jenkins安装并部署Java项目完整流程

文章插图
 
配置Maven环境变量(vi /etc/profile):
export M2_HOME=/usr/bin/maven/apache-maven-3.6.3PATH=$M2_HOME/bin:$PATH保存退出,source /etc/profile重载环境变量 , mvn -v能正确显示maven版本即配置成功
Jenkins安装并部署Java项目完整流程

文章插图
 
  • Jenkins
【Jenkins安装并部署Java项目完整流程】Jenkins安装命令:
wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.reporpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.keyyum install -y jenkins修改配置文件vi /etc/sysconfig/jenkins并将端口号配置为8500:JENKINS_PORT=“8500”
jenkins启动相关指令:
service jenkins start #启动service jenkins restart #重启service jenkins stop#停止初始密码在/var/lib/jenkins/secrets/initialAdminPassword文件中 , 访问http://ip:8500/安装推荐插件 。
Jenkins配置(Manage Jenkins)
  • System Configuration(系统管理)
配置maven、git、email并Save , 其中maven与git配置为必须 , maven配置用于jenkins找到mvn指令位置 , git用于jenkins从仓库拉取文件:
Jenkins安装并部署Java项目完整流程

文章插图
 
  • Global Tool Configuration(全局工具管理)
配置全局工具路径 , 主要配置JDK、Git、Maven并Save:
Jenkins安装并部署Java项目完整流程

文章插图
 
注:java地址可通过ls -lrt /etc/alternatives/java查找 , 截取jre之前的路径 。
Jenkins安装并部署Java项目完整流程

文章插图
 
  • Manage Plugins(插件管理)
如果需要构建Jenkins的Maven项目则需安装Maven Integration插件 , 但使用jenkins maven插件创建的项目执行mvn install后就会显示sucess , 如需再执行指令设置构建unstable的话使用Freestyle项目也可 。由于Freestyle的把控性更强且更自由 , 配置了maven环境后也可通过maven指令构建而不需再按照Jenkins Maven Integration插件 , 所以该文着重介绍Freestyle且更推荐使用Freestyle构建 。
Jenkins项目配置(New Item)1. 配置项目github地址 , git Credentials可使用用户名密码或SSH key
Jenkins安装并部署Java项目完整流程

文章插图
 
2. 配置执行脚本
BUILD_ID=DONTKILLME# 获取正在运行的ecs-Application程序pidpid=$(ps -aux|grep ecs-application | grep -v grep| gawk '{print $2}')if [ ${#pid} != 0 ]then kill -9 $pidficd /var/lib/jenkins/workspace/ecs-applicationmvn clean packagenohup java -jar /var/lib/jenkins/workspace/ecs-application/target/ecs-application.jar -Xmx512m -Xms512m -Xss4m &pid=$(ps -aux|grep ecs-application | grep -v grep| gawk '{print $2}')# 获取正在运行的ecs-application的pid并判断其字符串长度 , 0为不存在(即构建失败)if [ ${#pid} == 0 ]thenecho "*****BUILD FAILED******"exit 1elseecho "*****BUILD SUCCESS*****"fi需要注意的是Jenkins执行脚本中若不添加BUILD_ID=DONTKILLME的话则会在执行完脚本后会把脚本中的程序关闭 。jenkins创建的所有项目都可以在/var/lib/jenkins/workspace中找到 。为了避免程序运行失败结果却显示成功 , 当执行程序后pid不存在则exit 1 , 且需设置build unstable符号值 , 如下图:
Jenkins安装并部署Java项目完整流程

文章插图
 
如有邮箱发送需求也可在Post-build Actions设置Email Notification


推荐阅读