CI系列 - 使用Jenkins发布SpringBoot Jar包项目

CI系列 - 使用Jenkins发布SpringBoot Jar包项目

技术杂谈小彩虹2021-08-27 3:35:22270A+A-

前提条件

  1. 确保Jenkins已安装Publish Over SSH插件 用于把构建好的war包发送到目标远程服务器中、在远程服务器中执行命令。
  2. 使用Git需要安装Git插件,使用svn就要安装Subversion插件

发布步骤

  1. 先在系统管理中->系统设置中增加SSH Server

Name:名字

Hostname:目标服务器Ip

Username:登录用户名

Remote Directory:连接到远程服务器哪个目录

Password:密码(使用密码就勾选Use password authentication)

其他设置根据情况选填即可

填写完成点击Test Configuration提示“Success”表示可以连接上远程服务器

点击保存

  1. 新建一个项目,输入项目名称,选择“构建一个Maven项目”

点击OK

  1. 配置源码管理

我这以git演示,svn大同小异

Repository URL:项目git地址

Credentials:git凭证

Branch Specifier (blank for 'any'): 如果您想跟踪存储库中的特定分支,请指定分支。如果保留为空,所有的分支都将被检查变更并构建。

高级部分一般不用配置,根据具体情况选择配置

  1. 配置Build

Root POM:根Pom位置(相对于模块根目录),如果为空,则默认为pom.xml

Goals and options:指定要执行的目标,例如“clean install”或“deploy”。该字段还可以接受Maven的任何其他命令行选项,如"-e"或"-DskipTests=true"。

高级部分一般不用配置,根据具体情况选择配置

  1. 配置Post Steps(关键部分

Add post-build setp选择Send files or execute commands over SSH

Run only if build succeeds:只有在构建成功时才运行(一般选这个即可)、Run only if build succeeds or is unstable:只有在构建成功或不稳定时才运行 、 Run regardless of build result:不管构建结果如何都运行

Name:目标服务器(刚刚在系统配置中加的目标服务器)

Source files:需要上传到服务器的文件。这个字符串是一个用逗号分隔的包含列表,用于一个Ant文件集,例如。**/*.jar 。此文件集的基本目录是工作区。

Remove prefix:发送到目标服务器要删除的父目录

Remote directory:目标服务器目录(相对系统配置中的Remote Directory)

Exec command:要在远程服务器上执行的命令,此命令将在任何文件传输完成后在远程服务器上执行。

SSH传输集必须包括源文件模式、Exec命令或两者。如果两者都存在,则在执行命令前先传输文件。如果您想在文件传输之前执行,使用2个传输集,并将Exec命令移动到包含源文件模式的传输集之前。

tunis.sh:

#!/bin/sh
#defined

#帮助信息
help()
{
   cat <<- EOF Desc: 用于jenkins启动服务 Usage: ./tunis.sh <要启用的服务jar包> [<用于remote denug端口>] EOF
   exit 0
}

#校验参数
if [[ -z "$1" ]]; then
	echo "please input param target jar "
	exit 0
fi
#输出帮助信息
if test "$1" = "--help" -o "$1" = "-h"
then
	help;
fi
cd /data/ms
#检查文件是否存在
if test ! -e $1
then
	echo "file is not exist"
	exit 0
fi

# 终止已存在进程
ID=`ps -ef | grep java | grep $1 | awk '{print $2}'`
if [[ -z "$ID" ]]; then
	echo "already kill"
else
	echo $ID
	echo "-------------"
	kill -9 $ID
	echo "kill $ID done"
	echo "-------------"
	# 休眠2秒,等待进程被停止
	sleep 2
fi

#启动参数堆内存512M;年轻永久代使用默认比例,不做设置;元空间为128M;关闭字节码校验;禁止手动GC
JAVA_OPTS=" -Xms512m -Xmx512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xverify:none -XX:+DisableExplicitGC"

echo "start project"
#判断是否携带debug参数端口
if [ -z "$2" ]
then
	nohup /usr/local/jdk1.8.0/bin/java $JAVA_OPTS  -jar /data/ms/$1 --spring.profiles.active=test > /data/datalog/$1.log  2>&1 &
else
 	echo "debug model, port \"$2\""
 	nohup /usr/local/jdk1.8.0/bin/java $JAVA_OPTS  -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=$2,suspend=n -jar /data/ms/$1 --spring.profiles.active=test > /data/datalog/$1.log  2>&1 &
fi

tunis.sh是启动应用的命令。

最后点击保存。

  1. 最后点击立即构建即可。点击Console Output可查看执行日志。 在这里插入图片描述

提示Success成功,大功告成。

总结

构建过程:

  1. 拉取最新代码
  2. 打包编译代码
  3. 将打包好的项目发送至目标远程服务器
  4. 执行命令启用最新打包好的应用

文中只是简单介绍基本使用,Jenkins功能非常强大,提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。

点击这里复制本文地址 以上内容由权冠洲的博客整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

支持Ctrl+Enter提交

联系我们| 本站介绍| 留言建议 | 交换友链 | 域名展示 | 支付宝红包
本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除

权冠洲的博客 © All Rights Reserved.  Copyright quanguanzhou.top All Rights Reserved
苏公网安备 32030302000848号   苏ICP备20033101号-1
本网站由 提供CDN/云存储服务

联系我们