python | Jenkins构建Spring Boot 详细步骤

摘要:
环境已准备好开始安装Jenkins。初始化配置。访问主页。输入管理员密码。安装插件。创建管理员实例。配置springboot项目。配置JDK、maven、Git环境。安装插件。添加SSHServer。添加凭据。创建一个新的Maven项目。如何构建托管在GitLab中的项目?安装插件添加GitLabAPItoken配置GitLab插件创建新任务跟进如何构建多模块项目?
目录
  • 前言
  • 如何安装Jenkins?
    • 环境准备
    • 开始安装Jenkins
  • 初始化配置
    • 访问首页
    • 输入管理员密码
    • 安装插件
    • 创建管理员
    • 实例配置
    • 配置完成
  • 构建Spring Boot 项目
    • 配置JDK、maven、Git环境
    • 安装插件
    • 添加 SSH Server
    • 添加凭据
    • 新建Maven项目
    • 构建任务
  • 如何构建托管在GitLab的项目?
    • 安装插件
    • 添加GitLab API token
    • 配置GitLab插件
    • 新建任务
    • 后续操作
  • 多模块项目如何构建?
  • 总结

前言

自动持续集成不知道大家伙有没有听说过,有用过类似的工具吗?

简而言之,自动持续集成的工作主要是能对项目进行构建、自动化测试和发布。

今天这篇文章就来讲讲常用的持续集成的工具Jenkins以及如何自动构建Spring Boot项目。

如何安装Jenkins?

Jenkins是Java开发的一套工具,可以直接下载war包部署在Tomcat上,但是今天作者用最方便、最流行的Docker安装。

环境准备

在开始安装之前需要准备以下环境和工具:

  1. 一台服务器,当然没有的话可以用自己的电脑,作者的服务器型号是Ubuntu
  2. JDK环境安装,作者的版本是1.8,至于如何安装,网上很多教程。
  3. 准备maven环境,官网下载一个安装包,放在指定的目录下即可。
  4. Git环境安装,网上教程很多。
  5. 代码托管平台,比如GithubGitLab等。

开始安装Jenkins

Docker安装Jenkins非常方便,只要跟着作者的步骤一步步操作,一定能够安装成功。

Docker环境安装

每个型号服务器安装的方式各不相同,读者可以根据自己的型号安装,网上教程很多。

拉取镜像

我这里安装的版本是jenkins/jenkins:2.222.3-centos,可以去这里获取你需要的版本: https://hub.docker.com/_/jenkins?tab=tags。执行如下命令安装:

docker pull jenkins/jenkins:2.222.3-centos

创建本地数据卷

在本地创建一个数据卷挂载docker容器中的数据卷,我创建的是/data/jenkins_home/,命令如下:

 mkdir -p /data/jenkins_home/

需要修改下目录权限,因为当映射本地数据卷时,/data/jenkins_home/目录的拥有者为root用户,而容器中jenkins用户的 uid 为 1000

chown -R 1000:1000 /data/jenkins_home/

创建容器

除了需要挂载上面创建的/data/jenkins_home/以外,还需要挂载mavenjdk的根目录。启动命令如下:

docker run -d --name jenkins -p 8040:8080 -p 50000:50000 -v /data/jenkins_home:/var/jenkins_home -v /usr/local/jdk:/usr/local/jdk -v /usr/local/maven:/usr/local/maven jenkins/jenkins:2.222.3-centos

以上命令解析如下:

  1. -d:后台运行容器
  2. --name:指定容器启动的名称
  3. -p:指定映射的端口,这里是将服务器的8040端口映射到容器的8080以及50000映射到容器的50000。 「注意:」 804050000一定要是开放的且未被占用,如果用的是云服务器,还需要在管理平台开放对应的规则。
  4. -v:挂载本地的数据卷到docker容器中,「注意:」 需要将JDKmaven的所在的目录挂载。

初始化配置

容器启动成功,则需要配置Jenkins,安装一些插件、配置远程推送等等。

访问首页

容器创建成功,访问http://ip:8040,如果出现以下页面表示安装成功:

python | Jenkins构建Spring Boot 详细步骤第1张

输入管理员密码

启动成功,则会要求输入密码,如下图:

python | Jenkins构建Spring Boot 详细步骤第2张

这里要求输入的是管理的密码,提示是在/var/jenkins_home/secrets/initialAdminPassword,但是我们已经将/var/jenkins_home这个文件夹挂载到本地目录了,因此只需要去挂载的目录/data/jenkins_home/secrets/initialAdminPassword文件中找。

输入密码,点击继续。

安装插件

初始化安装只需要安装社区推荐的一些插件即可,如下图:

python | Jenkins构建Spring Boot 详细步骤第3张

这里选择安装推荐的插件,然后 Jenkins 会自动开始安装。

「注意:」 如果出现想插件安装很慢的问题,找到/data/jenkins_home/updates/default.json文件,替换的内容如下:

  1. 将 updates.jenkins-ci.org/download 替换为mirrors.tuna.tsinghua.edu.cn/jenkins
  2. 将 www.google.com 替换为www.baidu.com

执行以下两条命令:

sed -i 's/www.google.com/www.baidu.com/g' default.json

sed -i 's/updates.jenkins-ci.org/download/mirrors.tuna.tsinghua.edu.cn/jenkins/g' default.json
python | Jenkins构建Spring Boot 详细步骤第4张

全部安装完成,继续下一步。

创建管理员

随便创建一个管理员,按要求填写信息,如下图:

python | Jenkins构建Spring Boot 详细步骤第5张

实例配置

配置自己的服务器IP端口,如下图:

python | Jenkins构建Spring Boot 详细步骤第6张

配置完成

按照以上步骤,配置完成后自动跳转到如下界面:

python | Jenkins构建Spring Boot 详细步骤第7张

构建Spring Boot 项目

在构建之前还需要配置一些开发环境,比如JDKMaven等环境。

配置JDK、maven、Git环境

Jenkins集成需要用到mavenJDKGit环境,下面介绍如何配置。

首先打开系统管理->全局工具配置,如下图:

python | Jenkins构建Spring Boot 详细步骤第8张

分别配置JDKGitMaven的路径,根据你的实际路径来填写。

「注意」:这里的JDKGitMaven环境一定要挂载到docker容器中,否则会出现以下提示:

 xxxx is not a directory on the Jenkins master (but perhaps it exists on some agents)
python | Jenkins构建Spring Boot 详细步骤第9张python | Jenkins构建Spring Boot 详细步骤第10张python | Jenkins构建Spring Boot 详细步骤第11张

配置成功后,点击保存。

安装插件

除了初始化配置中安装的插件外,还需要安装如下几个插件:

  1. Maven Integration
  2. Publish Over SSH

打开系统管理 -> 插件管理,选择可选插件,勾选中 Maven Integration 和 Publish Over SSH,点击直接安装

python | Jenkins构建Spring Boot 详细步骤第12张

在安装界面勾选上安装完成后重启 Jenkins

python | Jenkins构建Spring Boot 详细步骤第13张

添加 SSH Server

SSH Server 是用来连接部署服务器的,用于在项目构建完成后将你的应用推送到服务器中并执行相应的脚本。

打开 系统管理 -> 系统配置,找到 Publish Over SSH 部分,选择新增

python | Jenkins构建Spring Boot 详细步骤第14张

点击 高级 展开配置

python | Jenkins构建Spring Boot 详细步骤第15张

最终配置如下:

python | Jenkins构建Spring Boot 详细步骤第16张

配置完成后可点击 Test Configuration 测试连接,出现 success 则连接成功。

添加凭据

凭据 是用来从 Git 仓库拉取代码的,打开 凭据 -> 系统 -> 全局凭据 -> 添加凭据

python | Jenkins构建Spring Boot 详细步骤第17张

这里配置的是Github,直接使用用户名密码,如下图:

python | Jenkins构建Spring Boot 详细步骤第18张

创建成功,点击保存。

新建Maven项目

以上配置完成后即可开始构建了,首先需要新建一个Maven项目,步骤如下。

创建任务

首页点击新建任务->构建一个maven项目,如下图:python | Jenkins构建Spring Boot 详细步骤第19张

源码管理

在源码管理中,选择Git,填写仓库地址,选择之前添加的凭证

python | Jenkins构建Spring Boot 详细步骤第20张

构建环境

勾选 Add timestamps to the Console Output,代码构建的过程中会将日志打印出来。

python | Jenkins构建Spring Boot 详细步骤第21张

构建命令

Build中,填写 Root POM 和 Goals and options,也就是你构建项目的命令。

python | Jenkins构建Spring Boot 详细步骤第22张

Post Steps

选择Run only if build succeeds,添加 Post 步骤,选择 Send files or execute commands over SSH

python | Jenkins构建Spring Boot 详细步骤第23张

上图各个选项解析如下:

  1. name:选择前面添加的SSH Server
  2. Source files:要推送的文件
  3. Remove prefix:文件路径中要去掉的前缀,
  4. Remote directory:要推送到目标服务器上的哪个目录下
  5. Exec command:目标服务器上要执行的脚本

Exec command指定了需要执行的脚本,如下:

# jdk环境,如果全局配置了,可以省略
export JAVA_HOME=/xx/xx/jdk
export JRE_HOME=/xx/xx/jdk/jre
export CLASSPATH=/xx/xx/jdk/lib
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
 
# jenkins编译之后的jar包位置,在挂载docker的目录下
JAR_PATH=/data/jenkins_home/workspace/test/target
# 自定义的jar包位置
DIR=/data/test

## jar包的名称
JARFILE=swagger-demo-0.0.1-SNAPSHOT.jar

if [ ! -d $DIR/backup ];then
   mkdir -p $DIR/backup
fi

ps -ef | grep $JARFILE | grep -v grep | awk '{print $2}' | xargs kill -9

if [ -f $DIR/backup/$JARFILE ]; then
 rm -f $DIR/backup/$JARFILE
fi

mv $JAR_PATH/$JARFILE $DIR/backup/$JARFILE


java -jar $DIR/backup/$JARFILE > out.log &
if [ $? = 0 ];then
        sleep 30
        tail -n 50 out.log
fi

cd $DIR/backup/
ls -lt|awk 'NR>5{print $NF}'|xargs rm -rf

以上脚本大致的意思就是将kill原有的进程,启动新构建jar包。

脚本可以自己定制,比如备份Jar等操作。

构建任务

项目新建完成之后,一切都已准备就绪,点击立即构建可以开始构建任务,控制台可以看到log输出,如果构建失败,在log中会输出原因。

python | Jenkins构建Spring Boot 详细步骤第24张

任务构建过程会执行脚本启动项目。

如何构建托管在GitLab的项目?

上文介绍的例子是构建Github仓库的项目,但是企业中一般都是私服的GitLab,那么又该如何配置呢?

其实原理是一样的,只是在构建任务的时候选择的是GitLab的凭据,下面将详细介绍。

安装插件

系统管理->插件管理->可选插件中搜索GitLab Plugin并安装。

添加GitLab API token

首先打开 凭据 -> 系统 -> 全局凭据 -> 添加凭据,如下图:

python | Jenkins构建Spring Boot 详细步骤第25张

上图中的API token如何获取呢?

打开GitLab(例如公司内网的GitLab网站),点击个人设置菜单下的setting,再点击Account,复制Private token,如下:

python | Jenkins构建Spring Boot 详细步骤第26张

上图的Private token则是API token,填上即可。

配置GitLab插件

打开系统管理->系统配置->GitLab,如下图:

python | Jenkins构建Spring Boot 详细步骤第27张

配置成功后,点击Test Connection,如果提示Success则配置成功。

新建任务

新建一个Maven任务,配置的步骤和上文相同,唯一区别则是配置Git仓库地址的地方,如下图:

python | Jenkins构建Spring Boot 详细步骤第28张

仓库地址和凭据需要填写Gitlab相对应的。

后续操作

后续一些操作,比如构建项目,控制台输出等操作,都是和GitHub操作相同,不再赘述了。

多模块项目如何构建?

如果你的多模块不是通过私服仓库依赖的,那么在构建打包是有先后顺序的,在新建任务的时候需要配置Buildmaven命令,如下图:python | Jenkins构建Spring Boot 详细步骤第29张

上图中的Goals and options中的命令就是构建api这个模块的命令,至于这个命令是什么意思,前面有单独一篇文章介绍过,请看一次打包引发的思考,原来maven还能这么玩~

总结

如果觉得不错,点个赞不迷路~

免责声明:文章转载自《python | Jenkins构建Spring Boot 详细步骤》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇OpenGL的glClearColor和glClear改变背景颜色Nginx+Tomcat动静分离及Nginx优化下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

linux上实现jmeter分布式压力测试(转)

摘要:最近根据公司工作的需求,学习了一些压力测试的知识,目前,公司使用的是jmeter进行压力测试。下面就记录下近期的学习。我想将这次的博文分成三个部分:1、开始测试前的准备(测试环境的搭建)2、在一台linux上测试3、多台linux分布式测试首先来看看测试环境的搭建。我是自己创建的linux虚拟机,所以就用它来说说吧。安装linux的过程就不多说了,...

如何在Ubuntu 20.04上安装PHP Composer

PHP Composer是一个软件包管理工具,用于安装和管理PHP应用程序的模块。之后,您可以轻松地将这些模块用于您的项目。它可以帮助用户在您的应用程序下安装所需版本的php模块。它还会维护所有已安装模块的详细信息以及版本详细信息。所有条目都保存在文件名composer.json中。本教程将帮助您在Ubuntu 20.04 LTS系统上安装和使用PHP c...

CMD命令大全

cmd命令大全(第一部分)  winver---------检查Windows版本   wmimgmt.msc----打开windows管理体系结构(WMI)   wupdmgr--------windows更新程序   wscript--------windows脚本宿主设置   write----------写字板   winmsd--------...

【转】获取Jenkins构建时Git Change Log

原文:https://www.jianshu.com/p/513ab6915dbd  在基于Jenkins进行CI持续集成的工作,在构建后上传蒲公英时想将本次版本的git commit信息同步到蒲公英的下载页面。Jenkins每次构建都会根据Git 的提交记录生成一个Web页面来显示自上次构建之后的提交记录列表(如图1),但是Jenkins却并没有提供可以...

tcl/tk之流程控制命令

作为学习笔记,写下来仅供自己查阅。 tcl脚本命令风格有些类似linux命令,比较古老和原始的语言,学过linux的看起来应该毫无压力 if 命令 if {$x < 0} {     set x 0 }   if {$x < 0} {     ... } elseif {$x == 0} {     ... } elseif {$x == 1}...

基于ARM64的Qemu/KVM学习环境搭建

作者:pengdonglin137@163.com 在没有aarch64架构的开发板的情况下,可以使用Qemu来模拟一个支持KVM的AArch64位的host,然后再在其上运行一个开启KVM加速的Qemu虚拟机,如下图所示:   软件版本如下: 1: x86_64上运行的是ubuntu20.04 2:qemu版本是5.1.0,ubuntu16.04,内核版...