jenkins远程构建 springboot工程

1,752 阅读2分钟
最近研究了一下jenkins发布,通过服务器A向服务器B发布应用,网上一堆的教程,有参考价值,但是坑很多,很多细节描述不清,所以从坑里爬出来后,决定整理下这个过程。

1. 环境准备

系统:centos7.6,本地虚拟机2台

host1: 作为发布服务器,安装jenkins、git、maven、jdk8等基础环境

host2: 作为应用部署服务器,安装jdk8等环境

Jenkins-plugins: github、publish over ssh、Maven Integration plugin等


jenkins安装网上教程比较详细,不再赘述

2. 配置jenkins

2.1. Global Tool Configuration

配置maven/jdk/git



2.2. system config

这里主要配置github账号和publish over ssh

github配置凭证,这里使用了账号密码的方式



publish over ssh:



  1. 名称,随便起,方便自己区分就
  2. 被发布的远程服务器ip
  3. 服务器用户名
  4. jenkins构建完项目后,会将jar包拷贝到远程服务器的这个目录下
  5. 勾选后输入远程服务器用户的登录密码

3. 配置job

创建自由风格的projects



Post-build Actions需要注意路径的配置细节

  1. 选择前面配置的ssh
  2. Source files: jenkins的服务器,对应jenkins/workspace/ 下构建的工程文件夹,我这里构建后的路径是/root/.jenkins/workspace/lottery-svc/lottery-svc/target/lottery-svc.jar,所以此处配置为lottery-svc/target/*.jar
  3. 步骤2的配置前缀
  4. 远程被发布的服务器,publish over ssh配置步骤下的/home/jenkins/data中会创建一个lottery-svc目录,用来保存从jenkins服务器构建好的jar包
  5. 执行脚本,工程运行脚本,jar包放到自定义目录,并通过脚本启动


启动shell脚本:

#!/bin/bash
source /etc/profile
jar_name=lottery-svc.jar

cd /home/webapps/lottery-svc

ps -ef | grep $jar_name | grep -v grep | awk '{print $2}' | xargs kill -9
echo "关闭旧服务"
nohup java -jar $jar_name > nohup.log 2>&1 &
echo "启动脚本执行完毕!!"

发布后可以到目标服务器对应目录下查看日志,确认工程是否启动成功