前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Jenkins的简单使用【图文并茂】

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

作者头像
CBeann
发布2023-12-25 17:52:57
2620
发布2023-12-25 17:52:57
举报
文章被收录于专栏:CBeann的博客

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
代码语言:javascript
复制
yum -y install git
代码语言:javascript
复制
git --version

基本功能模块

文件目录结构

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

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/

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

代码语言:javascript
复制
cat /root/.jenkins/secrets/initialAdminPassword

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

下一步

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

如下图所示

安装成功后如图所示

Jenkins全局配置

主页面

全局安全配置Configure Global Security

全局工具配置Global Tool Configuration

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

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

创建Jenkins任务关联项目

主页面

源码管理:关联github

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

目的

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

配置

代码语言:javascript
复制
格式:JENKINS_URL/              job/jkdemo/build?token=TOKEN_NAME
===>>>
实例:http://39.105.30.146:8080/job/jkdemo/build?token=jkdemo123

构建:核心逻辑

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

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

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

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

代码语言:javascript
复制
#!/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 &

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

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

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

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

遇到的问题

1)新版Jenkins禁用CSRF

修改tomcat-8.5.55\bin\catalina.sh

代码语言:javascript
复制
JAVA_OPTS="-Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true"
2)jenkins安装插件

以安装插件 Post Build task 为例

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-03-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Jenkins的介绍
  • 需求
  • 注意
  • 前提
    • Linux安装Maven
      • Linux安装git
      • 基本功能模块
      • 文件目录结构
      • Linux安装Jenkins
      • Jenkins全局配置
        • 主页面
          • 全局安全配置Configure Global Security
            • 全局工具配置Global Tool Configuration
            • 在IDEA中创建Boot项目并且传到github
            • 创建Jenkins任务关联项目
              • 主页面
                • 源码管理:关联github
                  • 构建触发器:触发构建的前提条件
                    • 构建:核心逻辑
                      • 构建后操作:当构建完毕后执行的操作,执行shell脚本
                        • 手动构建:测试一下构建是什么操作
                          • 1)新版Jenkins禁用CSRF
                          • 2)jenkins安装插件
                      • 配置github的webhooks:关联jenkins触发器
                      • 遇到的问题
                      相关产品与服务
                      持续集成
                      CODING 持续集成(CODING Continuous Integration,CODING-CI)全面兼容 Jenkins 的持续集成服务,支持 Java、Python、NodeJS 等所有主流语言,并且支持 Docker 镜像的构建。图形化编排,高配集群多 Job 并行构建全面提速您的构建任务。支持主流的 Git 代码仓库,包括 CODING 代码托管、GitHub、GitLab 等。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档