jenkins 插件目录_三十二张图告诉你如何用Jenkins构建SpringBoot

目录

  • 前言
  • 如何安装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. 代码托管平台,比如Github、GitLab等。

开始安装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/以外,还需要挂载maven、jdk的根目录。启动命令如下:

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。 「注意:」 8040和50000一定要是开放的且未被占用,如果用的是云服务器,还需要在管理平台开放对应的规则。
  4. -v:挂载本地的数据卷到docker容器中,「注意:」 需要将JDK和maven的所在的目录挂载。

初始化配置

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

访问首页

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

4158969c172078b8728a892cfa32c533.png

输入管理员密码

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

4ed6e85743571442912e3c74e4dcba0c.png

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

输入密码,点击继续。

安装插件

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

65be864135cd7304709b0d0f53952760.png

这里选择安装推荐的插件,然后 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.jsonsed -i 's/updates.jenkins-ci.org/download/mirrors.tuna.tsinghua.edu.cn/jenkins/g' default.json
5e61190d85244f6172b745e55e26fff3.png

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

创建管理员

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

f9276100e0de9738ce594b1591b4fbef.png

实例配置

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

30f5cae58c28808e96e25dda1ac6c890.png

配置完成

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

8cd528bf3c13686d3631f25f7b85e181.png

构建Spring Boot 项目

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

配置JDK、maven、Git环境

Jenkins集成需要用到maven、JDK、Git环境,下面介绍如何配置。

首先打开系统管理->全局工具配置

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

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

 xxxx is not a directory on the Jenkins master (but perhaps it exists on some agents)
7efaa956fc27875d1413cdbb1bc69e9c.png
4cbaa7876b9ea4ca9a9ffae9a7cc525d.png
b96e99f8f6008d0bf365151c7f64294d.png

配置成功后,点击保存。

安装插件

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

  1. Maven Integration
  2. Publish Over SSH

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

01ca8d010e53494a95cefc5d742c71f4.png

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

ba346190d3299461911f1a82716c3bc6.png

添加 SSH Server

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

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

23edb5081bab8ddaec1d24c604eca229.png

点击 高级 展开配置

bda0e3d7bc0b81ba09db60eaf60b8687.png

最终配置如下:

1d76f7e353b7dfc08edf9776774d65f3.png

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

添加凭据

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

9e84a2d0cea8b0e36267c0c1db5d1ab0.png

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

7d9919ce2485eb727cabd34325112206.png

创建成功,点击保存。

新建Maven项目

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

创建任务

首页点击新建任务->构建一个maven项目,如下图:

11dd58f66a2f5e7aad25f91e16758a90.png

源码管理

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

a01f40af9404b72319bcbe1d458185d1.png

构建环境

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

构建命令

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

2a10b65d280f7ac4ad900944bebb2b4b.png

Post Steps

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

bed907df67b70de93a02226ed56016a7.png

上图各个选项解析如下:

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

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

# jdk环境,如果全局配置了,可以省略export JAVA_HOME=/xx/xx/jdkexport JRE_HOME=/xx/xx/jdk/jreexport CLASSPATH=/xx/xx/jdk/libexport 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.jarif [ ! -d $DIR/backup ];then   mkdir -p $DIR/backupfips -ef | grep $JARFILE | grep -v grep | awk '{print $2}' | xargs kill -9if [ -f $DIR/backup/$JARFILE ]; then rm -f $DIR/backup/$JARFILEfimv $JAR_PATH/$JARFILE $DIR/backup/$JARFILEjava -jar $DIR/backup/$JARFILE > out.log &if [ $? = 0 ];then        sleep 30        tail -n 50 out.logficd $DIR/backup/ls -lt|awk 'NR>5{print $NF}'|xargs rm -rf

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

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

构建任务

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

d11b720ff62176fd038c1a008bc3bd75.png

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

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

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

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

安装插件

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

添加GitLab API token

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

978c1f9023ca10200497571723e3ce08.png

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

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

3c93a001f0b928143ce9878fbd7debb1.png

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

配置GitLab插件

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

9f244ffb7c3d1052a332dc2c3d0f5537.png

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

新建任务

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

73539bcaad8e1aabc070603317e7410c.png

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

后续操作

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

多模块项目如何构建?

如果你的多模块不是通过私服仓库依赖的,那么在构建打包是有先后顺序的,在新建任务的时候需要配置Build的maven命令,如下图:

045ec61e9bc38eb82881b8d19c5a6d3c.png

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

总结

本文详细的介绍了如何从零安装部署一个Jenkins,这下又能吹牛了,哈哈....

来源:https://www.cnblogs.com/Chenjiabing/p/13953130.html

在我的 程序员cxuan 同名公众号下回复 cxuan 领取下面这些 PDF,纯自己手写。

04aea3330fcdea87cbedcddd7ea6ed75.png
85c577a1d5f0fcf0aad8f4c3beb85625.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.tpcf.cn/news/245228.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android+rom+bootloader+flash,Android ROM开发(4) bootloader 三种启动模式

Andrew Huang 转载请注明作者及网址HTC手机中用的bootloader称为HBoot,不知道是不是HTC Bootloader 之意,从官网的源码看这个bootloader不象是u-boot的改版。(当然这个也不太确定HBOOT就是完全使用与Android相同的源码)在Android 的刷机时,经常会听到SPL…

filter过滤后重新添加_每天记一个单词(第3518)filter

filter /ˈfɪltər/ n. 过滤器;点击音频收听跟读 ↓↓↓↓↓↓(中慢速带读)(音频不显示请关闭头条app后台重新打开或者更新最新版本)英英解释:something that you pass water, air etc through in order to remove unwanted substances and make it clean or suita…

openwrt dhcp 无法获取ip_如何安装Openwrt软路由系统并配置正常使用

本篇文章教大家如何安装Openwrt软路由系统并配置正常使用。首先我们需要能用来当作软路由的主板,主板要至少需要2个千兆网口,一个用作Wan,其他用作Lan.我这边用到的是ASUS-N3050I-CM-A,这块主板拥有两个千兆网口,搭载了功耗仅6w的n3050 CPU,非…

android 低功耗蓝牙,Android 低功耗(BLE)蓝牙开发说明

BLE(Bluetooth Low Energy)低功耗蓝牙兴起的原因BLE蓝牙的兴起主要是因为可穿戴设备的流行,由于传统蓝牙不能满足可穿戴设备的续航要求,因此大部分可穿戴设备采用蓝牙4.0技术,即BLE蓝牙技术。BLE的特点快速搜索、快速连接、超低功耗连接和数据…

android opencv 获取小图在大图的坐标_Android开发—基于OpenCV实现相机实时图像识别跟踪...

利用OpenCV实现实时图像识别和图像跟踪图像识别什么是图像识别图像识别,是指利用计算机对图像进行处理、分析和理解,以识别各种不同模式的目标和对像的技术。根据观测到的图像,对其中的物体分辨其类别,做出有意义的判断。利用现代…

三菱a系列motion软体_三菱M70A/64SM重要功能比较

三菱M70A/64SM重要功能比较M70A特有功能,64SM无法作到的功能往 期 精 选 1>三菱M70系统全清操作步骤2>三菱M70系统 程序传输操作步骤3>三菱M70分中对刀操作步骤4>三菱M70设置加工条件选择 介绍5>三菱M70系统 原点设定方法6>三菱M70/M700 用户参数…

手机网页转换为html文件,怎么在手机上打开HTML文件

回答:一1、我们打开XMind软件2、点击插入----超链接3、我们输入我们的网址二使用二:XMind如何分享,XMind提供非常强大的共享功能,而且在不断完善,那么大家知道XMind如何分享吗?其实操作还是简单的。1、我们…

centos 卸载_CentOS「linux」学习笔记12:磁盘管理、分区挂载卸载操作

linux基础操作:主要介绍了磁盘管理、分区挂载卸载操作。特别说明linux中磁盘表现形式:IDE硬盘在linux中表示方式为"hdx"。SCSI硬盘在linux中表示方式为"sdx"。这里的x代表磁盘号[a代表基本主磁盘(主盘)对应数字表示:1,b代…

html制作翻页效果代码,使用原生JS实现滚轮翻页效果的示例代码

一、滚轮事件当用户通过鼠标滚轮与页面交互、在垂直方向上滚动页面时,就会触发mousewheel事件,这个事件就是实现全屏切换效果需要用到的。在IE6, IE7, IE8, Opera 10, Safari 5中,都提供了 “mousewheel” 事件,而 Firefox 3.5 中…

python leetcode_Leetcode 常用算法 Python 模板

小 trickoverlap条件&#xff1a;start1 < end2 and end1 > start2 在DFS中我们说关键点是递归以及回溯&#xff0c;在BFS中&#xff0c;关键点则是状态的选取和标记树算法Binary Indexed Tree BIT 树状数组class BIT:def __init__(self, n):self.n n 1self.sums [0] …

画瀑布图_常见的招财风水画之含义

点击上方【觉悟法华】关注 风水画是指利于风水的字画&#xff0c;能起到招财、旺运、化煞等等的风水作用。那么&#xff0c;常见的招财风水画有哪些含义&#xff1f;大鹏展翅图&#xff1a;大鹏展翅图&#xff0c;通常挂在书房或者客厅&#xff0c;给人以一种“鹏程万里”、积极…

荣耀play4 pro怎么升级鸿蒙系统,华为鸿蒙系统手机型号有哪些

华为鸿蒙系统支持的手机型号有很多&#xff0c;如果你想第一时间升级鸿蒙系统&#xff0c;需要申请内测后&#xff0c;才能够下载安装升级哦&#xff01;不知道如何操作的小伙伴们&#xff0c;一起来看看趣丁网带来的华为鸿蒙os2.0系统怎么升级教程吧&#xff01;一、华为鸿蒙系…

shell脚本中取消高亮显示_Linux中强大的top命令

top命令算是最直观、好用的查看服务器负载的命令了。它实时动态刷新显示服务器状态信息&#xff0c;且可以通过交互式命令自定义显示内容&#xff0c;非常强大。在终端中输入top&#xff0c;回车后会显示如下内容&#xff1a;一、系统信息统计前五行是系统整体状态的统计信息展…

body onload 控制窗口大小 html,HTML5 对各个标签的定义与规定:body的介绍

HTML5 对各个标签的定义与规定&#xff1a;body的介绍2019年07月25日| 萬仟网IT编程| 我要评论本文主要介绍body标签... 12-06-21body元素就是就是html文档的主内容标签。可设置属性onafterprint 在打印文档之后运行脚本onbeforeprint 在文档打印之前运行脚本onbeforeonload 在…

python杨辉三角函数公式大全_python-1-杨辉三角算法总结

题目计算杨辉三角前6行。杨辉三角的三种方法求杨辉三角的前6行。1-1方法先拼凑两端的1&#xff0c;中间两两相加triangle[[1],[1,1]]for i in range(2,6): # 外层循环&#xff0c;i表示索引cur[1] # 拼头部pretriangle[i-1] # 上一行for j in range(len(pre)-1): # 内层循环&am…

html5手机电商网页设计代码_Html5网站制作,干货!20个视觉体验和内容俱佳的优秀网页设计...

如何创建一个网页&#xff1f;“Html5网站制作”和“灵感干货&#xff01;20个视觉、体验和内容俱佳的优秀网页设计”有什么关系和内在关联&#xff1f;在图片方面&#xff0c;有三个具体方案&#xff1a;图片地图、Css Sprites、内联图片三种&#xff0c;最值得关注的是 Css S…

2021 高考 成绩查询,精准预测!2021全国大学录取分数线表查询

高考分数对应大学层次等级随着各大高校的疯狂扩招&#xff0c;大学的门槛近年来越来越低&#xff0c;虽然还不至于达到普及大学的程度&#xff0c;但对于成绩不是太差的高中生而言&#xff0c;上大学确实是一件轻松加愉快的事情。在高考总分750的情况下&#xff0c;文科生551分…

python 打包工具_介绍一款Python打包工具(py2exe)

下面小编就为大家带来一篇Python之py2exe打包工具详解。小编觉得挺不错的&#xff0c;现在就分享给大家&#xff0c;也给大家做个参考。一起跟随小编过来看看吧下载Python对应版本的py2exe&#xff0c;使用这个工具可以将自己的程序打包成exe文件。使用这个工具需要写一个用于打…

python图像处理opencv_使用Python+OpenCV进行图像处理(二)| 视觉入门

【前言】图像预处理对于整个图像处理任务来讲特别重要。如果我们没有进行恰当的预处理&#xff0c;无论我们有多么好的数据也很难得到理想的结果。 本篇是视觉入门系列教程的第二篇。整个视觉入门系列内容如下&#xff1a; 基本的图像处理与滤波技术。 从特征检测到人脸检测。 …

html文本设置float,css怎么float(浮动)?

在css中&#xff0c;浮动是一种使元素脱离文档流的方法&#xff0c;会使元素向左或向右移动&#xff0c;其周围的元素也会重新排列。Float(浮动)&#xff0c;往往是用于图像&#xff0c;但它在布局时一样非常有用。浮动是一种非常有用的布局方式&#xff0c;它能够改变页面中对…