Jenkins的简单使用【图文并茂】

简介: Jenkins的简单使用【图文并茂】

Jenkins的介绍


     官方版:Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。


    作者版:写完代码提交到仓库就自动部署。


需求


在window上写SpringBoot项目,写完代码后pull到github上可以自动打包并且运行jar


注意


仓库使用Github,仓库使用Github,仓库使用Github,如果使用Gitee,那么webhook那个地方会有个坑,注意一下


前提


Linux(能连外网)+JDK8 + Git+Github+Maven会配置并且使用


Linux安装Maven


安装Maven:linux安装maven简易步骤 - 简书


配置Maven中央镜像:Maven中本地仓库,中央镜像,JDK版本配置_CBeann的博客-CSDN博客


1)其中配置远程镜像仓库的setting.xml在 apache-maven-3.6.3/conf 目录下


2)注意自己的目录问题


Linux安装git


yum -y install git


git --version


基本功能模块


9.png


文件目录结构


博客肯定有自己的目录,但是我在这里写的不是废话,有助于阅读全文


1)Linux安装Jenkins:Linux怎么安装Jenkins(比如下载Maven并且配置了Maven的环境的变量)


2)Jenkins全局配置:设置Jenkins的一些全局属性(比较安装好Maven后你要设置仓库镜像地址、本地仓库地址等)


3)在IDEA中创建Boot项目并且传到github:就是简单的创建项目并且上传打github


4)创建Jenkins任务关联项目:核心操作


  4.1)源码管理:关联github,自动部署要有仓库吧,这个地方设置仓库URL和其他验证信息。


  4.2)构建触发器:触发构建的前提条件,就是满足什么条件才能触发构建条件,此处是访问某个 URL  时就触发了构建模块。


  4.3)构建:核心逻辑,此处就是把仓库里的代码 clean install


  4.4)构建后操作:当构建完毕后执行的操作,此处就是 构建的结果是xx.jar  , 构建后操作就是执行jar呗


  4.5)手动构建:测试一下构建是什么操作,其实就是手动触发构建,只有手动正确了自动才放心。


5)配置github的webhooks:关联jenkins触发器,当github仓库有pull请求时候就触发构建触发器,从而执行构建操作。


Linux安装Jenkins


下载最新的 jenkins.war (http://mirrors.jenkins.io/war-stable/latest/jenkins.war)


把war包放在tomcat服务器里


在浏览器输入 http://39.105.30.146:8080/jenkins/


然后跳转到如下页面,其中密码在图中已经告诉你位置


cat /root/.jenkins/secrets/initialAdminPassword


10.png


输入密码后点击右下角的继续


1.png


下一步


2.png


全部安装成功以后,很久以后。。。如下图所示,选择admin用户,密码为上面的密码


3.png


如下图所示


4.png


安装成功后如图所示


5.png


Jenkins全局配置


主页面


6.png


全局安全配置Configure Global Security


7.png


8.png


全局工具配置Global Tool Configuration


9.png


10.png


11.png


12.png



13.png


在IDEA中创建Boot项目并且传到github


这个没啥好说的,就是一个SpringBoot项目


14.png


创建Jenkins任务关联项目


主页面


15.png


16.png


源码管理:关联github


17.png


18.png


19.png


构建触发器:触发构建的前提条件


目的


当访问(http://39.105.30.146:8080/job/jkdemo/build?token=jkdemo123)时,会构建触发器去构建项目


配置


格式:JENKINS_URL/              job/jkdemo/build?token=TOKEN_NAME
===>>>
实例:http://39.105.30.146:8080/job/jkdemo/build?token=jkdemo123


2020060116052374.png


构建:核心逻辑


20.png


21.png


构建后操作:当构建完毕后执行的操作,执行shell脚本


22.png


注意:下图可能没有Post build task 选项 ,需要安装插件 Post Build task,安装插件方式在遇到的问题中


23.png


24.png


脚本的内容大致为:把xxx.jar包从仓库复制到某个地方,然后获取正在运行的xxx.jar的进程ID,然后关闭,在运行java -jar xxx.jar


脚本需要修改,不能直接用


#!/bin/bash
cp /root/.m2/repository/com/example/jkdemo/0.0.1-SNAPSHOT/jkdemo-0.0.1-SNAPSHOT.jar  /opt/cbeann/jkdemo-0.0.1-SNAPSHOT.jar
your_name=$(ps -ef | grep jkdemo-0.0.1-SNAPSHOT.jar | grep -v grep)
#echo ${your_name}
array=(${your_name// / })  
process_id=${array[1]}  ##获得进程ID
kill -9 ${process_id}
java -jar /opt/cbeann/jkdemo-0.0.1-SNAPSHOT.jar &


手动构建:测试一下构建是什么操作


点击左边的   立即构建,就会出现 左下角的 进度条


25.png


26.png


进度条完毕后会出现工作区,里面放着源代码


27.png


配置github的webhooks:关联jenkins触发器


28.png


29.png


遇到的问题


1)新版Jenkins禁用CSRF


修改tomcat-8.5.55\bin\catalina.sh


JAVA_OPTS="-Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true"


30.png


2)jenkins安装插件


以安装插件 Post Build task 为例


31.png


32.png



目录
相关文章
|
缓存 JavaScript 前端开发
hexo 命令速查小册
hexo 命令速查小册
|
jenkins Java 持续交付
Jenkins的简单使用,小白式教程
Jenkins的简单使用,小白式教程
241 0
|
10月前
|
jenkins Java 持续交付
Jenkins使用入门笔记
Jenkins使用入门笔记
103 0
|
11月前
|
存储 开发工具 git
后端实践--git的简单使用 青训营
后端实践--git的简单使用 青训营
|
缓存 JavaScript 前端开发
gulp安装教程(简单的前端自动化教程)
gulp安装教程(简单的前端自动化教程)
248 0
|
Java Linux API
JMeter汉化环境搭建和基本使用
学习JMeter汉化环境搭建和基本使用。
191 0
JMeter汉化环境搭建和基本使用
|
Shell 开发工具 git
|
算法 Java 程序员
如何使用IDEA断点调试(debug), 用图文并茂的方式来教你
如何使用IDEA断点调试(debug), 用图文并茂的方式来教你
如何使用IDEA断点调试(debug), 用图文并茂的方式来教你
|
网络安全 开发工具 数据安全/隐私保护
版本控制神器GitHub的基本使用与踩坑,教你一铲子填平!
![](https://ceshiren.com/uploads/default/original/3X/5/7/577bcc2d8a6d08b63c42c9cf7d62a83d7dec13ea.gif) ![](https://ceshiren.com/uploads/default/original/3X/c/3/c3193661cc0c2d46655f391bf7db03c55ca6ee6
|
网络安全 开发工具 数据安全/隐私保护
版本控制神器GitHub的基本使用与踩坑
首先需要申请GitHub帐号,这个就不多说了,大家自行百度或Google吧哈。这里默认大家都已经有GitHub账号了~