玩了一下 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

相关文章

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ

IDEA中Git版本回退的两种实现方案

《IDEA中Git版本回退的两种实现方案》作为开发者,代码版本回退是日常高频操作,IntelliJIDEA集成了强大的Git工具链,但面对reset和revert两种核心回退方案,许多开发者仍存在选择... 目录一、版本回退前置知识二、Reset方案:整体改写历史1、IDEA图形化操作(推荐)1.1、查看提

JDK多版本共存并自由切换的操作指南(本文为JDK8和JDK17)

《JDK多版本共存并自由切换的操作指南(本文为JDK8和JDK17)》本文介绍了如何在Windows系统上配置多版本JDK(以JDK8和JDK17为例),并通过图文结合的方式给大家讲解了详细步骤,具有... 目录第一步 下载安装JDK第二步 配置环境变量第三步 切换JDK版本并验证可能遇到的问题前提:公司常

查看Oracle数据库中UNDO表空间的使用情况(最新推荐)

《查看Oracle数据库中UNDO表空间的使用情况(最新推荐)》Oracle数据库中查看UNDO表空间使用情况的4种方法:DBA_TABLESPACES和DBA_DATA_FILES提供基本信息,V$... 目录1. 通过 DBjavascriptA_TABLESPACES 和 DBA_DATA_FILES

nvm如何切换与管理node版本

《nvm如何切换与管理node版本》:本文主要介绍nvm如何切换与管理node版本问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录nvm切换与管理node版本nvm安装nvm常用命令总结nvm切换与管理node版本nvm适用于多项目同时开发,然后项目适配no

最新Spring Security实战教程之Spring Security安全框架指南

《最新SpringSecurity实战教程之SpringSecurity安全框架指南》SpringSecurity是Spring生态系统中的核心组件,提供认证、授权和防护机制,以保护应用免受各种安... 目录前言什么是Spring Security?同类框架对比Spring Security典型应用场景传统

最新Spring Security实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)

《最新SpringSecurity实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)》本章节介绍了如何通过SpringSecurity实现从配置自定义登录页面、表单登录处理逻辑的配置,并简单模拟... 目录前言改造准备开始登录页改造自定义用户名密码登陆成功失败跳转问题自定义登出前后端分离适配方案结语前言

OpenManus本地部署实战亲测有效完全免费(最新推荐)

《OpenManus本地部署实战亲测有效完全免费(最新推荐)》文章介绍了如何在本地部署OpenManus大语言模型,包括环境搭建、LLM编程接口配置和测试步骤,本文给大家讲解的非常详细,感兴趣的朋友一... 目录1.概况2.环境搭建2.1安装miniconda或者anaconda2.2 LLM编程接口配置2

Mybatis从3.4.0版本到3.5.7版本的迭代方法实现

《Mybatis从3.4.0版本到3.5.7版本的迭代方法实现》本文主要介绍了Mybatis从3.4.0版本到3.5.7版本的迭代方法实现,包括主要的功能增强、不兼容的更改和修复的错误,具有一定的参考... 目录一、3.4.01、主要的功能增强2、selectCursor example3、不兼容的更改二、