saowu's Blog

Jenkins自动化部署Springboot项目

Jenkins自动化部署Springboot项目
2020-07-03 · 4 min read
CI/CD Linux Java

在jenkins中通过获取代码仓库中最新代码,进行自动化部署,而省去手动打包、上传服务器、部署这一系列步骤,非常方便。

部署流程

  • 用户提交代码到Git仓库
  • Jenkins服务器从指定Git仓库拉取代码,使用maven编译打包。
  • Jenkins服务器ssh连接应用服务器,将打包好的war或者jar包传送到应用服务器指定位置。
  • Jenkins服务器在应用服务器远程执行脚本文件,重启应用服务器 tomcat 或者 在应用服务器执行 java -jar 启动当前项目。

安装需要的插件

在Jenkins页面“系统管理”-->“管理插件”-->"可选插件"中搜索:

  • Maven Integration 用来支持构建maven项目
  • Publish Over SSH 用来把构建好的部署包传送到指定服务器的指定位置
  • Github 来获取仓库源码

部署配置环境

  • Maven安装
#1.下载maven并解压
wget https://mirror.bit.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
tar -zxvf apache-maven-3.6.3-bin.tar.gz

#2.修改maven的远程镜像为阿里云镜像库
vim conf/setting.xml
    ...
       <mirror>  
          <id>nexus-aliyun</id>  
          <mirrorOf>central</mirrorOf>    
          <name>Nexus aliyun</name>  
          <url>http://maven.aliyun.com/nexus/content/groups/public</url>  
      </mirror>
...
#3.在/etc/profile文件末尾增加以下配置 
vim /etc/profile 
#注意这里是maven的安装路径,globalEnvi/文件夹需要提前建立
M2_HOME=/home/jenkins/globalEnvi/apache-maven-3.6.3 
#4.重载/etc/profile这个文件
source /etc/profile
#5.修改环境变量
export PATH=${M2_HOME}/bin:${PATH}
  • JDK安装
#1.将下载完的jdk解压
tar -zxvf jdk-11.0.7_linux-x64_bin.tar.gz
#2.在/etc/profile文件末尾增加以下配置 
vim /etc/profile 
export JAVA_HOME=/home/jenkins/globalEnvi/jdk-11.0.7
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
#3.更新配置文件 
source /etc/profile
  • Git安装
#安装依赖 
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc
yum install gcc perl-ExtUtils-MakeMaker

Jenkins全局配置

在Jenkins页面“系统管理”-->“管理插件”-->”全局工具配置”:

  • maven settings配置
  • JDK安装目录配置
  • Git安装目录配置(默认)
  • maven安装目录配置

配置SSH

在Jenkins页面“系统管理”-->“系统设置”-->”Publish Over SSH”:

  • Passphrase 服务器的密码
  • Path to key连接远程服务器密钥文件的路径
  • Key密钥文件的内容
  • Name自定义服务器名
  • HostName服务器IP地址
  • UserName服务器用户名
  • Remote Directory传输文件的目录存放在服务器的路径。如果不是SpringBoot项目,或者需要放在tomcat,就是放在tomcat目录的下webapps目录下。或者tomcat目录下,在构建项目可以再加到webapps路径下。

配置Github

在Jenkins页面“系统管理”-->“Manage Credentials”-->”凭据”-->“全局”-->“添加凭据”:

构建项目

  • 创建maven项目
  • 项目配置



  • 构建后执行的脚本
#!/bin/bash
source /etc/profile
echo "Restarting SpringBoot miniprogram  Application"
pid=`ps -ef | grep dataway-demo-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
   kill -9 $pid
   echo "关闭进程:"$pid
fi
 
echo "授予当前用户权限"
chmod 777 /home/jenkins/project/dataway-demo-0.0.1-SNAPSHOT.jar
echo "执行....."
nohup java -jar /home/jenkins/project/dataway-demo-0.0.1-SNAPSHOT.jar &

参考链接

搭建jenkins
部署springboot
解决脚本问题

Copyright © 2020 - 2024 saowu. All Right Reserved
Powered by Gridea