【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行
作者:mmseoamin日期:2024-04-29

【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第1张

👨‍🎓博主简介

  🏅云计算领域优质创作者

  🏅华为云开发者社区专家博主

  🏅阿里云开发者社区专家博主

💊交流社区:运维交流社区 欢迎大家的加入!

🐋 希望大家多多支持,我们一起进步!😄

🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏 ⭐️ 加关注+💗


文章目录

  • 运行环境说明
  • 一、创建一个maven项目
    • 1.1 安装必要的插件【必须】*
    • 1.2 创建maven任务
    • 二、配置maven项目
      • 2.1 maven项目中的配置项详解
        • 2.1.1 General
        • 2.1.2 源码管理
        • 2.1.3 构建触发器
        • 2.1.4 构建环境
        • 2.1.5 Pre Steps(准备步骤)
        • 2.1.6 Build(构建)
        • 2.1.7 Post Steps(发布步骤)
        • 2.1.8 构建设置
        • 2.2 配置maven项目
          • 2.2.1 服务器需要提前安装:
          • 2.2.2 配置全局系统配置
          • 2.2.3 配置全局工具配置
          • 2.2.4 先写一个描述(可写可不写)
          • 2.2.5 创建源码管理(svn方式)
          • 2.2.6 保存配置
          • 三、构建maven项目
            • 3.1 build(构建)项目
            • 3.2 构建完成
            • 3.3 构建报错总结:
              • 3.3.1 关于maven版本问题报错
              • 3.3.2 关于jdk版本配置的问题
              • 四、构建完自动在服务器中运行
                • 4.1 在项目中配置Post Steps(发布步骤)
                • 4.2 自动构建jar包并运行
                • 五、动构建打包jar包并运行完成

                  运行环境说明

                  运行环境运行版本作用
                  操作系统centos 7.8运行Jenkins的基础环境
                  jenkins版本2.419用于构建项目及其他自动化
                  maven版本3.8.6用于构建jar包
                  jdk版本18、1.818(用于运行Jenkins)、1.8(用于运行jar包)

                  一、创建一个maven项目

                  1.1 安装必要的插件【必须】*

                  • maven
                  • git
                  • ssh
                  • svn

                    一般在部署完成,访问的时候选择默认安装插件基本都会装 – git。

                    点击 Manage Jenkin –> Plugins(插件) --> Available plugins(商店)

                    【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第2张

                    【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第3张

                    【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第4张

                    • 搜索git 和 maven 和 ssh 和 svn 进行安装;

                      git 和 ssh 我这里已经有了,需要更新就更新一下;

                      【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第5张

                      【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第6张

                      maven、svn 我这里没有,就安装一下吧;

                      【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第7张

                      安装完成之后,在新建Item 那块就可以看到maven了。如下↓

                      【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第8张

                      svn

                      【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第9张

                      1.2 创建maven任务

                      • 新建Item – > 选择maven项目,起一个任务名称。

                        【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第10张

                        创建完之后,就到了这个页面

                        【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第11张

                        二、配置maven项目

                        下面来讲解一下maven项目里的配置项。

                        2.1 maven项目中的配置项详解

                        2.1.1 General

                        项目描述,可以在这块写一些项目的描述。

                        【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第12张

                        2.1.2 源码管理

                        主要是拉取源码用的,这里有两种,一种是git,一种是svn方式。等下我们创建项目使用的是svn方式。

                        【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第13张

                        这个不仅Jenkins项目上要安装git插件,在服务器上也需要安装git。

                        yum -y install git
                        

                        2.1.3 构建触发器

                        默认勾选上的是下面的选项:Jenkins将会去寻找之前已经构建过的pom依赖(如果有之前构建过的相同的pom文件),直接使用之前的镜像,便不会再去重新的解析了

                        【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第14张

                        2.1.4 构建环境

                        在这里面,勾选上对应的内容,将去做一些额外的处理,在这里保持默认的,什么都不去勾选

                        【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第15张

                        这是翻译后的,可根据实际情况来使用。

                        【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第16张

                        2.1.5 Pre Steps(准备步骤)

                        准备步骤,一般会选择Execute shell 和 Invoke Gradle script。

                        【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第17张

                        2.1.6 Build(构建)

                        【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第18张

                        2.1.7 Post Steps(发布步骤)

                        这个配置,说明的是:在项目构建完成之后,接下来需要做的内容

                        在这里,我们需要将构建完的项目,打成的包传到我们的测试服务器上,也是在这里去进行配置的

                        2.1.8 构建设置

                        这里可以配置电子邮件通知。比如失败,成功,都可以进行发送邮件来通知提醒。

                        2.2 配置maven项目

                        2.2.1 服务器需要提前安装:

                        如果是使用git部署,服务器上也需要安装git;

                        • jdk1.8

                        • maven

                        • jdk:根据自己的项目选择所需的jdk版本,我的项目是需要 jdk11以上,用的是jdk18 才可以;

                          如果是需要jdk1.8,并且Jenkins是按照我的部署文档部署的,那么默认就会有jdk1.8,可以使用find / -name java 找一下java的安装路径,将绝对路径配置到全局工具配置里就行;如果没有安装,需要安装一下;可参考:Linux中安装jdk1.8和配置环境变量

                        • maven:根据自己的项目选择所需的mvn版本,我的项目是需要 maven3.8 才可以;

                          maven环境默认是没有的,也需要在服务器安装一下,可参考:【Linux】Centos安装mvn命令(maven),建议使用maven3.8,下载地址:https://pan.baidu.com/s/1drjw-sQ5JKFukamVSsLqtw?pwd=b1a0

                          2.2.2 配置全局系统配置

                          Manage Jenkins --> System

                          【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第19张

                          • 配置ssh环境

                            提示:如果找不到ssh在哪,可以使用ctrl+f搜索一下;

                            【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第20张

                            2.2.3 配置全局工具配置

                            Manage Jenkins --> Tools

                            【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第21张

                            • maven配置

                              在项目开始前,我们安装了maven,所以maven使用默认的配置就行,所以这块不用改。

                              如果服务器有多个maven,需要用到这时候就需要重新配置一下了,配置的时候到maven的setting.xml路径,比如/usr/local/maven/apache-maven-3.8.6/conf/setting.xml。

                              【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第22张

                              然后我们拉到最下面可以看到还有一个maven,这个需要配置一下;

                              找到Maven安装 --> 点击新增Maven --> 配置maven路径即可;

                              【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第23张

                              • jdk配置

                                找到JDK安装 --> 点击新增JDK --> 配置jdk路径即可;

                                【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第24张

                                配置完之后保存。

                                2.2.4 先写一个描述(可写可不写)

                                进入刚刚创建的maven项目,选择配置,跳到这个页面;

                                【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第25张

                                2.2.5 创建源码管理(svn方式)

                                【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第26张

                                【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第27张

                                2.2.6 保存配置

                                配置完之后,点击保存

                                【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第28张

                                三、构建maven项目

                                3.1 build(构建)项目

                                保存完之后,看到左边有一个build now,然后点击build(构建)就可以了;

                                【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第29张

                                构建的时候可以查看构建过程,F5 刷新一下页面

                                【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第30张

                                往下拉,看到这个,点进去,然后点击控制台输出,就可以看到构建过程了。

                                【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第31张

                                【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第32张

                                3.2 构建完成

                                出现Finished: SUCCESS 就是构建完成了。

                                【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第33张

                                同时,最上面也会变成一个绿色的对号;

                                【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第34张

                                构建完之后就可以在服务器上查看了,以下是存放到服务器的路径。

                                【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第35张

                                3.3 构建报错总结:

                                3.3.1 关于maven版本问题报错

                                如果在build的时候遇到此报错,是因为maven版本的问题;

                                【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第36张

                                3.3.2 关于jdk版本配置的问题

                                如果在build的时候遇到此报错,是因为jdk版本配置的问题;

                                【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第37张

                                四、构建完自动在服务器中运行

                                4.1 在项目中配置Post Steps(发布步骤)

                                这就是在build完之后,需要进行什么操作,在这里写。

                                可以使用ssh 方式或者 shell 方式;

                                ssh 和 shell 其实都一样,都是写命令的;

                                ssh还需要配置全局变量,虽然上面已经配置了,但是我一般经常用 shell 方式,看自己选择吧。

                                这里以 shell 方式举例。

                                首先,需要返回刚刚的项目中进行配置;

                                【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第38张

                                • 找到 Post Steps

                                  【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第39张

                                  • 选择执行shell,写个shell脚本(也可以使用ssh方式,自己定义)

                                    【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第40张

                                    【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第41张

                                    • shell 脚本内容

                                      提示:如果要运行jar包的话,必须在脚本里添加:BUILD_ID=DONTKILLME 环境变量,防止执行完自动化构建jar包程序自动停止问题。

                                      #!/bin/bash
                                      # (必须)配置一个环境变量,防止执行完自动化构建jar包程序自动停止问题
                                      BUILD_ID=DONTKILLME
                                      # 源jar包及路径
                                      src_jar="/root/.jenkins/workspace/mytest_maven/target/cs.jar"
                                      # 目标jar及包路径
                                      dest_jar="/application/cs.jar"
                                      # 目标jar包路径
                                      dest_path="/application/"
                                      # 创建目标路径
                                      mkdir -p /application/
                                      # 将打包完的jar包复制过去
                                      ## 先判断jar包是否存在,如果存在则备份,如果不存在,则直接复制过去运行。
                                      if [ -e $dest_jar ];then
                                      	echo "存在此文件,开始备份,重新复制:$(date +"%Y-%m-%d")"
                                      	mv $dest_jar $dest_jar-$(date +"%Y-%m-%d")
                                          cp -ar $src_jar $dest_jar
                                      else
                                      	echo "目标路径没有这个文件,直接复制过去"
                                      	cp -ar $src_jar $dest_jar
                                      fi
                                      cd $dest_path
                                      # 检测jar包进程,这里直接写jar包名称,因为如果引用上面的环境变量,是路径加jar包名,如果在服务器上但启动的话,可能会找不到,所以需要直接写jar包名称。
                                      jar_jin=$(ps -ef | grep -v grep | grep -ic cs.jar)
                                      if [ "$jar_jin" -ge "1" ];then
                                      	echo "检测到进程,先杀掉,后启动"
                                      	ps -ef | grep -v grep | grep cs.jar | awk -F " " '{print $2}' | xargs kill -9
                                          java -jar $dest_jar --server.port=9999 >> app.log &
                                      else
                                      	echo "未检测到jar包进程,直接启动"
                                      	java -jar $dest_jar --server.port=9999 >> app.log &
                                      fi
                                      

                                      配置完之后,点击保存;

                                      【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第42张

                                      4.2 自动构建jar包并运行

                                      • 点击构建(Build Now)

                                        【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第43张

                                        • F5 刷新一下,可看到最新的构建运行

                                          【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第44张

                                          • 点击进入,查看控制台输出。

                                            【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第45张

                                            输出Finished: SUCCESS 则为执行成功。

                                            【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行,在这里插入图片描述,第46张

                                            执行成功之后我们进入到服务器中,查看一下服务是否启动,可以查看端口是否启动或者jar包进程是否启动

                                            ps -ef | grep cs.jar
                                            netstat -anput | grep 9999
                                            

                                            端口和jar包进程都存在,则可以去做访问页面之类的操作了。

                                            如果访问不到,需要确认服务是否正常启动或防火墙端口是否开启。

                                            这样自动构建打包jar包并运行就完成了。

                                            五、动构建打包jar包并运行完成