玩了一下 Jenkins,最新版本 + JDK11

2023-11-02 23:45

本文主要是介绍玩了一下 Jenkins,最新版本 + JDK11,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

背景

今年五月的时候玩了一下 Jenkins,最新版本 2.414.3 ,JDK 11 。本机有两个 JDK,只放到 Tomcat 里面了,看到了一个启动页面,后面有其他事情就忘记了。最近又想起来,觉得还是应该玩一下这么有技术含量的东西的。它能自动拉取代码,自动发布,比 maven 的 wagon-plugin 插件高级多了。

本文记录笔者利用 jenkins 和 maven 的 wagon-plugin 插件组合实现一个 Shell 自动部署的任务,距离解放双手,又前进了一步。

部署包准备

各组件版本信息及解压处理方法:

  1. JDK-11:tar.gz ,直接解压,目标主机上是JDK1.8。
  2. maven-3.6.2:tar.gz ,直接解压,bin 目录添加到环境变量。
  3. node-12.22:tar.gz ,直接解压,bin 目录添加到环境变量,因为 18以后的高版本对 gcc 有要求,所以选择一个低版本。这个组件主要是用来对前端模块进行编译的,对于前后台分离的应用来说是必须的。
  4. tomcat-9.0.82:修改启动脚本 catalina.sh 前面几行,添加环境变量配置:export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk-11.jdk"。
  5. jenkins-2.414.3.war:最新版本,移动到 tomcat-9.0.82 的 webapps 目录下。

启动 Tomcat

进入 tomcat 目录启动 Tomcat,启动过程中碰到一个异常:
在这里插入图片描述
解决办法:参考 该文 修改 tomcat/conf/contex.xml 文件,在 context 节点下添加一行 :

<Resources cachingAllowed="true" cacheMaxSize="100000" />

初始化 jenkins

在浏览器输入 jenkins 访问路径,首次访问时要求输入 jenkins 的默认密码,对着tomcat 的 catalina.out 日志去找密码拷贝输入就可以了。初始化选择安装推荐的插件,等待插件完成:
在这里插入图片描述
部署的目标主机插件安装过程很快,不像我本机安装的时候,推荐插件只安装成功了几个其他全失败了。

安装完成后需要创建一个帐号,按照提示输入就可以了。默认安装的推荐插件中有一个本地化简体中文插件的,完成后访问 jenkins 页面上有些菜单就是中文了。但是它汉化得不完整,还是夹杂着几个英文菜单的。

到这里,Jenkins 就部署完成了,主界面长这样:
在这里插入图片描述

全局配置

需要为 Jenkins 添加一下配置,如 JDK【可以添加多个,创建任务的时候再选择】、maven

「Manage Jenkins 」菜单是管理页面,它没被汉化,主要管理插件、系统配置、全局配置等,例如:【只截取了一个屏】
在这里插入图片描述
点击 Tools 菜单,配置基本的工具,依次指定 maven 的配置文件,JDK HOME 路径、MAVEN 安装路径等。

再点击 Plugin 菜单,安装 SVN 插件。

这样,基本的准备工作就完成了。

创建任务

点击主界面的 「新建 Item」进入任务创建页面:
在这里插入图片描述
选择 「Freestyle project」类型,点击“确定”,就可以进入任务配置页面了,配置项主要有:

  1. JDK【如果配置了多个 JDK ,才会出现该选项】,因为 1.8 的 rt.jar 中有很多工具类,高版本里面没有,所以最好配置一个 1.8 的 JDK,JDK 11 只是为 Tomcat 启动 jenkins 服务的。
  2. 源码管理:选择 SVN ,配置 SVN 路径,添加凭证。
  3. 构建触发器:可以选择定时器或者轮训源码变更定时器。
  4. 构建环境:可以勾选构建失败的判断条件,指定超时时间,需要考虑应用构建时间,如果设置过短,可能会导致任务构建过程中被终止。
  5. Build Steps:可以选择 Shell 方式,编写 Shell 脚本完成构建。
  6. 构建后的操作:没有就不配置。

逐个添加配置,我这里基于 SpringBoot 的多模块的微服务项目,并且配置了 wagon-plugin 插件的应用,编写了一个自动化构建脚本。

自动部署脚本

#不允许 Jenkins 杀死当前脚本进程
BUILD_ID=DONTKILLME#定义代码根路径
codePath=$WORKSPACE/myCode
echo code path is $codePath#进入代码根路径对整个模块打包
cd $codePath
mvn clean package#定义模块列表数组
moduleList=(a b c d e f)#遍历数组:逐个执行自动部署命令,${#moduleList[@]}获取数组的长度
for((i=0;i<${#moduleList[@]};i++)) docd $codePath/${moduleList[i]}mvn wagon:upload-single wagon:sshexec -X
done

点击 Build Now 执行任务,查看任务构建结果,模块过多的话,上述脚本执行很慢,等待其执行完成,成功的话,是绿色的。

启示录

这个过程中,遇到的阻碍就是版本和 JDK 版本的问题,还有一个就是初始化过程中的推荐插件的安装,几乎都不成功。以为必须都安装成功,才能使用,其实并不需要。传统应用开发,都是人工操作,几乎都用不上这些自动化运维的工具。说实话,搞这一套环境,还是挺不错的!

另外,Jenkins 的任务类型四种:

  1. 本文用的 FreeStyleProject
  2. External Project
  3. 多配置的项目
  4. 文件夹项目:类似任务分组。

但是 ExternalProject 几乎没有配置信息,它能干甚呢?
在这里插入图片描述

第三种「多配置项目」,它和自由项目多了一个配置矩阵,但是配置矩阵到底怎么使用?部署脚本中的脚本内容,并没有执行。

本文只用了 Jenkins 的最基本的简单用法,还有一些高级 Pipeline 、多环境配置等高级用法,并不是我们看到的这个简单的页面,用户文档:

  1. https://www.jenkins.io/doc/book/blueocean/getting-started/
  2. https://www.jenkins.io/zh/doc/tutorials/build-a-multibranch-pipeline-project/

这篇关于玩了一下 Jenkins,最新版本 + JDK11的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/334119

相关文章

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe

IDEA如何切换数据库版本mysql5或mysql8

《IDEA如何切换数据库版本mysql5或mysql8》本文介绍了如何将IntelliJIDEA从MySQL5切换到MySQL8的详细步骤,包括下载MySQL8、安装、配置、停止旧服务、启动新服务以及... 目录问题描述解决方案第一步第二步第三步第四步第五步总结问题描述最近想开发一个新应用,想使用mysq

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

Debian如何查看系统版本? 7种轻松查看Debian版本信息的实用方法

《Debian如何查看系统版本?7种轻松查看Debian版本信息的实用方法》Debian是一个广泛使用的Linux发行版,用户有时需要查看其版本信息以进行系统管理、故障排除或兼容性检查,在Debia... 作为最受欢迎的 linux 发行版之一,Debian 的版本信息在日常使用和系统维护中起着至关重要的作

Jenkins中自动化部署Spring Boot项目的全过程

《Jenkins中自动化部署SpringBoot项目的全过程》:本文主要介绍如何使用Jenkins从Git仓库拉取SpringBoot项目并进行自动化部署,通过配置Jenkins任务,实现项目的... 目录准备工作启动 Jenkins配置 Jenkins创建及配置任务源码管理构建触发器构建构建后操作构建任务

你的华为手机升级了吗? 鸿蒙NEXT多连推5.0.123版本变化颇多

《你的华为手机升级了吗?鸿蒙NEXT多连推5.0.123版本变化颇多》现在的手机系统更新可不仅仅是修修补补那么简单了,华为手机的鸿蒙系统最近可是动作频频,给用户们带来了不少惊喜... 为了让用户的使用体验变得很好,华为手机不仅发布了一系列给力的新机,还在操作系统方面进行了疯狂的发力。尤其是近期,不仅鸿蒙O

什么是 Ubuntu LTS?Ubuntu LTS和普通版本区别对比

《什么是UbuntuLTS?UbuntuLTS和普通版本区别对比》UbuntuLTS是Ubuntu操作系统的一个特殊版本,旨在提供更长时间的支持和稳定性,与常规的Ubuntu版本相比,LTS版... 如果你正打算安装 Ubuntu 系统,可能会被「LTS 版本」和「普通版本」给搞得一头雾水吧?尤其是对于刚入

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

Spring Boot 中整合 MyBatis-Plus详细步骤(最新推荐)

《SpringBoot中整合MyBatis-Plus详细步骤(最新推荐)》本文详细介绍了如何在SpringBoot项目中整合MyBatis-Plus,包括整合步骤、基本CRUD操作、分页查询、批... 目录一、整合步骤1. 创建 Spring Boot 项目2. 配置项目依赖3. 配置数据源4. 创建实体类

windows端python版本管理工具pyenv-win安装使用

《windows端python版本管理工具pyenv-win安装使用》:本文主要介绍如何通过git方式下载和配置pyenv-win,包括下载、克隆仓库、配置环境变量等步骤,同时还详细介绍了如何使用... 目录pyenv-win 下载配置环境变量使用 pyenv-win 管理 python 版本一、安装 和