概要
本文主要讲述如何通过Jenkins来完成针对Java项目的构建和自动部署, 本文中JDK选择的版本是1.8.0_421 maven版本为3.6.1, 服务器都是centos7, 至于为什么要用这个Jenkins一句大白话就是省事儿, 不需要你再自己手动打包上传服务器然后启动,省略一些麻烦事儿
如果你的项目Jdk和Maven版本和我不一致请不要直接完全照抄, 如果你的是JDK11或者17等等,那么就需要下载对应的JDK版本, maven也是一个原理
JDK下载
Jenkins下载
此文章绑定了Jenkins资源, 自行下载, 如果你想选择别的版本也可以,官网自行下载, 下载对应的war包就行了
Jenkins下载
Maven下载
Maven下载 选择你项目需要的就行了我的是3.6.1
GIT安装
直接一行命令搞定就完事儿了 yum install git
我当前的部署方式
我是Jenkins单独部署了一台服务器, 项目本身呢也是单独部署一台服务器, 也就是两台服务器, 这里呢举例A机器部署Jenkins,B机器部署你的项目,A机器需要JDK和MAVEN和GIT, JDK和maven都是构建项目要用的,而GIT呢是为了从你的远程仓库(Gitlab/Bitbucket等等)拉取代码, 对应B服务器你的项目部署需要什么资源你就需要安装什么, 比如最基本的jdk, 因为肯定是要启动项目的
Jenkins启动和必要的组件安装
首先需要后台启动 也就是nohup命令的方式启动, 这里直接把sh脚本放在下面了 你可以用我的脚本启动 也可以自己写,说明一下为什么我改端口号了, 因为我的gitlab和Jenkins是一台服务器, 端口冲突了, 所以我用8034启动了
#!/bin/bash
exec nohup java -jar jenkins.war --httpPort=8034 &
首先初次进入Jenkins的密码在哪?
进入这个文件复制粘贴或者直接看控制台也行 控制台也输出了 找一下就可以了
然后接下来就是用户创建,直接是root用户密码自己随意
插件安装
当进入到Jenkins主页面时我们需要安装两个非常重要的插件(必须安装)
- Maven插件, 用于构建项目, 没有这个插件是创建不了Maven项目的
- Publish Over SSH (将构建好的jar包传到指定的服务器)
怎么安装看下图
傻瓜式安装搜索到勾选安装就行了
Jenkins全局配置
然后应用保存就可以了
创建Maven项目
配置我们创建好的项目对应的配置
点击进到我们创建好的项目里面然后点击配置
然后应用保存即可
为什么要编写前置和后置脚本
前置脚本为了杀死原先的java进程 清理原先的旧文件
后置脚本就是为了启动新传递的jar包
前置脚本
#!/bin/bash
# 删除历史数据 jar包和log文件
echo "正在尝试删除老版本jar包"
if sudo rm -f jeecg-system-start-3.6.3.jar; then
echo "老版本jar包删除成功"
else
echo "老版本jar包删除失败"
fi
echo "正在尝试删除日志文件..."
if sudo rm -f jn-boot.log; then
echo "日志文件删除成功"
else
echo "日志文件删除失败"
fi
echo "进程号获取中..."
pid=`ps -ef | grep jeecg-system-start-3.6.3.jar | grep -v grep | awk '{printf $2}'`
if [ -z "$pid" ]; then
echo "未找到对应的进程,程序可能未在执行"
else
echo "正在尝试杀死进程$pid中..."
kill -9 $pid
fi
echo "执行完毕!"
后置脚本
#!/bin/bash
echo "启动java程序..."
nohup /usr/jdk1.8.0_181/bin/java -jar jeecg-system-start-3.6.3.jar > jn-boot.log 2>&1 &
上面的所有的配置路径和sh脚本都是参考 肯定是要按照你实际项目的路径来的 sh脚本中一些参数也需要替换
启动测试
可以去查看一下构建日志 完成之后可以检查一下目标服务器ip对应的jar包启动没
jps -l 或者 ps -ef 都行
如果启动失败 可以查看对应的输出日志
如果启动报错日志里会打印出来
至此基本的搭建和配置就完毕了
常见的问题比如Jenkins构建失败了 必须要保证你的jdk和maven都是安装和配置了 版本要和Java项目对应
有别的问题 可以留言