- Git服务器:Gitee
- Jenkins服务器:CentOS7.6
- Web服务器:CentOS8.1
- 项目结构,父子工程
├── qd-cloud-base
│ └── qd-registry
│ ├── src
│ └── target
│ └── qd-registry-1.0-SNAPSHOT.jar
流程
- 下载源码,从Gitee下载代码到
Jenkins服务器 /var/lib/jenkins/workspace
- 打包,使用Maven将源码打成jar包
/var/lib/jenkins/workspace/qd-registry/qd-cloud-base/qd-registry/target/qd-registry-1.0-SNAPSHOT.jar
- Jenkins任务根目录
/var/lib/jenkins/workspace/qd-registry/
- Jenkins任务根目录
- 上传,上传jar包至
Web服务器
- 启动,执行启动脚本,启动Web服务
构建
-
下载源码
-
打包
- 上传并启动服务
-
打包成功才上传
-
Source files 当前任务目录下
/var/lib/jenkins/workspace/qd-registry/
Remove prefix 配置此项,则不会在远程服务器创建相应文件夹
mv qd-registry-*.jar qd-registry.jar
# 查找当前服务的pid
pid_info=$(ss -lnp | grep 10000 | awk '{print $7}' | awk -F, '{print $2}')
if [ "$pid_info" ];then
pid=${pid_info#pid=}
echo 停止服务$pid
kill $pid
fi
echo 开始启动服务
# 后台运行,将日志输出到server.log
nohup java -jar qd-registry.jar >server.log 2>&1 &
echo 启动完成
问题
-
构建项目权限不足
修改为root用户
JENKINS_USER="root"
- jenkins执行
nohup java -jar qd-registry.jar &
一直loading
将控制台日志重定向到文件
nohup java -jar qd-registry.jar >server.log 2>&1 &