自动化发布工具CI/CD实践Jenkins常用工具和插件的使用

发布于:2025-03-30 ⋅ 阅读:(31) ⋅ 点赞:(0)

1、安装常用工具

名称 版本 备注
jdk java8 代码打包所需
git 1.8.3.1
maven 3.6.3 注意配置私服内容
nvm 0.39.3 多Node.js环境管理工具
Node.js v14.18.0 / v16.17.1 包管理工具
yarn 1.22.15 包管理工具

1.1 安装jdk

Jenkins 需要使用java11 及以上,但是代码打包依赖jdk8,所以一台机器会同时安装两个jdk环境

#二进制安装jdk,解压至
[root@jenkins-new bin]# tar -xf jdk-8u251-linux-x64.tar -C /home/application/

[root@jenkins-new bin]# ll /home/application/jdk1.8.0_251/
total 25836
drwxr-xr-x 2 10143 10143     4096 Mar 12  2020 bin
-r--r--r-- 1 10143 10143     3244 Mar 12  2020 COPYRIGHT
drwxr-xr-x 3 10143 10143      132 Mar 12  2020 include
-rw-r--r-- 1 10143 10143  5217764 Mar 12  2020 javafx-src.zip
drwxr-xr-x 5 10143 10143      185 Mar 12  2020 jre
drwxr-xr-x 5 10143 10143      245 Mar 12  2020 lib
-r--r--r-- 1 10143 10143       44 Mar 12  2020 LICENSE
drwxr-xr-x 4 10143 10143       47 Mar 12  2020 man
-r--r--r-- 1 10143 10143      159 Mar 12  2020 README.html
-rw-r--r-- 1 10143 10143      424 Mar 12  2020 release
-rw-r--r-- 1 10143 10143 20923007 Mar 12  2020 src.zip

[root@jenkins-new bin]# vim /etc/profile
#配置环境变量,最最下面新增

#jdk8
export JAVA_HOME=/home/application/jdk1.8.0_251
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
..........

#使环境变量生效
[root@jenkins-new bin]# source /etc/profile

#验证java
[root@jenkins-new bin]# which java
/home/application/jdk1.8.0_251/bin/java

1.2 安装git

[root@localhost ~]# yum install git

1.3 安装maven

需要注意:
配置本地缓存目录: 默认为 ${user.home}/.m2/repository
配置阿里云加速站
配置自己公司私服仓库

#下载包,并解压
[root@localhost ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
[root@localhost ~]# tar -xf apache-maven-3.6.3-bin.tar.gz -C /home/application


#重命名
[root@localhost ~]# mv /home/application/apache-maven-3.6.3/ /home/application/maven-3.6.3


#修改maven配置文件,添加自己公司私服内容,加速站点
[root@localhost conf]# vim  /home/application/maven-3.6.3/conf/settings.xml

1.4 安装nvm配置 多Node.js环境

nvm是一个用于管理多个 Node.js 版本的工具。它可以让你在同一台机器上安装和切换不同版本的 Node.js,而不会相互干扰。使用 nvm,你可以轻松地安装、切换和删除 Node.js 版本。你可以在同一台机器上同时安装多个版本的 Node.js,并且可以在项目中使用不同的 Node.js 版本,以确保项目的兼容性和稳定性。例如,你可以在一台机器上同时安装 Node.js 10.x、Node.js 12.x 和 Node.js 14.x 版本。然后,你可以使用 nvm 命令来切换到不同的版本,以便在不同的项目中使用不同的 Node.js 版本。

1.4.1 安装必要的依赖项
[root@localhost ~]# yum install -y curl git
1.4.2 下载并安装 nvm
官网仓库地址: https://github.com/nvm-sh/nvm.git

[root@localhost ~]# wget https://github.com/nvm-sh/nvm/archive/refs/tags/v0.39.3.tar.gz
[root@localhost ~]# tar -xf v0.39.3.tar.gz
[root@localhost ~]# mv nvm-0.39.3 /home/application/nvm
1.4.3 配置环境变量
[root@jenkins-new bin]# vim /etc/profile
#配置环境变量,在最下面新增如下内容

#nvm
. /home/application/nvm/nvm.sh

#使环境变量生效
[root@jenkins-new bin]# source /etc/profile
1.4.4 验证nvm版本
[root@localhost ~]# nvm -v
0.39.3
1.4.5 在线查看Nodejs所有版本
[root@localhost ~]# nvm ls-remote
1.4.5 安装所需的 Node.js版本
[root@localhost ~]# nvm install 16.17.1
[root@localhost ~]# nvm install v14.18.0
1.4.6 查看安装的 Node.js版本
[root@localhost ~]#  nvm ls
->     v14.18.0
       v16.17.1
default -> 16.17.1 (-> v16.17.1)
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v16.17.1) (default)
stable -> 16.17 (-> v16.17.1) (default)
lts/* -> lts/hydrogen (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.12 (-> N/A)
lts/fermium -> v14.21.3 (-> N/A)
lts/gallium -> v16.20.0 (-> N/A)
lts/hydrogen -> v18.16.0 (-> N/A)
1.4.7 切换到指定Node.js版本上
[root@localhost ~]# nvm use v14.18.0
Now using node v14.18.0 (npm v6.14.15)

[root@localhost ~]# node -v
v14.18.0
[root@localhost ~]# npm -v
6.14.15

1.5 安装yarn 包管理工具

 Yarn 是一个快速、可靠、安全的 JavaScript 包管理器,由 Facebook、Google、Exponent 和 Tilde 公司共同开发。它可以替代 npm,用于管理 JavaScript 包的依赖关系、版本号和安装。与 npm 相比,Yarn 具有以下优点:
 - 快速:Yarn 使用并行下载,可以显著提高安装包的速度。
 - 可靠:Yarn 使用一个锁文件(yarn.lock)来确保在不同的环境中安装相同的依赖项。这可以避免意外升级或降级依赖项,从而保证项目的稳定性。
 - 安全:Yarn 使用 SHA-1 哈希值来验证每个依赖项的完整性,以确保安装的包没有被篡改。
 - 支持离线模式:Yarn 可以缓存所有的包和依赖项,从而可以在没有网络连接的情况下安装依赖项。
 - 易于使用:Yarn 具有与 npm 类似的命令行界面,易于学习和使用。

1.5.1 先使用nvm切换到指定的Node.js版本上

Node.js 版本v14.18.0

[root@localhost ~]# nvm use v14.18.0
Now using node v14.18.0 (npm v6.14.15)
1.5.2 设置npm加速地址
[root@localhost ~]# npm config set registry https://registry.npm.taobao.org/

 #通过这个命令进行测试
[root@localhost ~]# npm config get registry
https://registry.npm.taobao.org/
1.5.3 安装yarn并设置加速
[root@localhost ~]# npm install -g yarn

[root@jenkins-new ~]# yarn config set registry https://registry.npm.taobao.org/


#查看yarn版本
[root@jenkins-new ~]# yarn -v
1.22.15

需要注意的是,每一个Node.js 版本 再安装yarn 的时候,都需要重复上面的操作,先切换到指定nodejs,再安装yarn

#先使用nvm切换到指定的Node.js版本上
[root@localhost ~]# nvm use v16.17.1
Now using node v16.17.1 (npm v8.15.0)

[root@localhost ~]# node -v
v16.17.1


#安装yarn
[root@localhost ~]#  npm install -g yarn

[root@localhost ~]# yarn -v
1.22.19

#设置npm私服加速地址
[root@localhost ~]# yarn config set registry https://registry.npm.taobao.org/
yarn config v1.22.19
success Set "registry" to "https://registry.npm.taobao.org/".
Done in 0.05s.

#查看yarn版本
[root@localhost ~]# yarn -v
1.22.19

1.6 在jenkins 服务器上测试打包

1.6.1 前端项目

环境: Node.js v14.18.0 yarn 1.22.15

[root@localhost ~]# git clone -b release git@code.xxx.net:xxx-nj/xxx-fe-ak/xxxxx/xxx-business/xxx-oa.git
[root@localhost ~]# cd main-admin/

#拉取依赖
[root@localhost main-admin]# yarn
yarn install v1.22.19
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
Done in 39.60s.

#编译打包
[root@localhost main-admin]# yarn  build:prod
total 560
-rw-r--r--   1 root root    180 Jun  6 01:37 babel.config.js
-rw-r--r--   1 root root    203 Jun  6 01:37 jsconfig.json
drwxr-xr-x   6 root root    201 Jun  6 01:41 main-admin
drwxr-xr-x 944 root root  28672 Jun  6 01:40 node_modules
-rw-r--r--   1 root root   1771 Jun  6 01:37 package.json
drwxr-xr-x   4 root root    117 Jun  6 01:37 public
-rw-r--r--   1 root root    333 Jun  6 01:37 README.md
drwxr-xr-x  10 root root    300 Jun  6 01:37 src
-rw-r--r--   1 root root   2790 Jun  6 01:37 vue.config.js
-rw-r--r--   1 root root 504574 Jun  6 01:37 yarn.lock

打包成功!
1.6.2 后端项目

环境: maven3.6.3

[root@localhost ~]# git clone -b release git@code.xxx.net:xxx-nj/xx-xx-kj/xx/em/xx/xxx-accident.git

[root@localhost ~]# cd xxx-accident

#编译打包,跳过单测
[root@localhost ~]# /home/application/maven-3.6.3/bin/mvn clean package -Dmaven.test.skip=true

[root@localhost xxx-accident]# ll target/
total 110328
drwxr-xr-x 3 root root      4096 Jun  6 02:09 apidocs
drwxr-xr-x 9 root root       124 Jun  6 02:08 classes
drwxr-xr-x 3 root root        25 Jun  6 02:08 generated-sources
drwxr-xr-x 2 root root        71 Jun  6 02:09 javadoc-bundle-options
drwxr-xr-x 2 root root        28 Jun  6 02:08 maven-archiver
drwxr-xr-x 3 root root        35 Jun  6 02:08 maven-status
-rw-r--r-- 1 root root 107017259 Jun  6 02:09 xx-accident-1.0-SNAPSHOT.jar
-rw-r--r-- 1 root root   1597850 Jun  6 02:08 xx-accident-1.0-SNAPSHOT.jar.original
-rw-r--r-- 1 root root   3610019 Jun  6 02:09 xx-accident-1.0-SNAPSHOT-javadoc.jar
-rw-r--r-- 1 root root    733545 Jun  6 02:09 xx-accident-1.0-SNAPSHOT-sources.jar

打包成功!

2、安装常用插件

早在安装jenkins的时候,其实我们就已经预装了一批社区推荐的插件,但是想要真正的用好jenkins 还不够,我们还需要手动安装一些插件;以下插件都是,安装jenkins 之外的插件,不在安装jenkins时安装的插件

名称 功能 备注
Role-Based Strategy Jenkins用户视图权限管理插件 Role-based Authorization Strategy | Jenkins plugin
Job Configuration History jenkins配置当中的后悔药,如果你更改了某个配置,但是现在又想更改回去,没有备份而且忘了,那么可以使用这个插件 Job Configuration History | Jenkins plugin
Email Extension Template Jenkins复杂邮件推送功能,可自定义邮件主题,内容,定义邮件接收对象 Email Extension | Jenkins plugin
Publish Over SSH 通过在jenkins 服务器上 以ssh的方式向远端机器执行命令 Publish Over SSH | Jenkins plugin
Generic Webhook Trigger 基于Gitlab钩子提交合并代码触发jenkins构建 Generic Webhook Trigger | Jenkins plugin
SonarQube Scanner jenkins 上集成 sonarqube 代码质量检测功能 SonarQube Scanner | Jenkins plugin
Blue Ocean 基于web 的可视化流水线 Blue Ocean | Jenkins plugin
Build Name and Description Setter 指定每次构建的名称,可根据自己的要求来定义,而不是每次只显示#1, #2 Build Name and Description Setter | Jenkins plugin
Console Column 提供可用于视图的快速路径控制台链接,能够在项目视图首页展示项目构建输出面板的地址 Console Column | Jenkins plugin
figlet-buildstep 允许你在构建过程中输出一个简单的横幅 【注意只支持显示英文单词,单词和单词之间只允许一个空格 Figlet Buildstep | Jenkins plugin
sidebar-link 在 Jenkins 主页、视图选项卡和项目页面的侧边栏中添加自定义链接;其中包含链接 URL、文本和图标的设置。这些链接将显示在顶级 Jenkins 页面(主页、用户列表、构建历史记录、我的项目和其他项目视图选项卡)中。特定作业的侧边栏链接也可以添加到作业配置页面中。 Sidebar Link | Jenkins plugin
Extended Choice Parameter 提供了一种灵活地参数化能力。可以讲版本的信息记录在一个文件内,通过key,value 去调取文件的内容;一般回滚使用这个插件。 Extended Choice Parameter | Jenkins plugin
Metrics 用于收集和展示Jenkins实例的性能数据和指标的插件。它可以帮助用户监控Jenkins的运行状况,比如构建失败 的状态都可以接入到Prometheus中 Metrics | Jenkins plugin

这里不会详细展开讲每个插件的具体使用方法,但是会在后面的案例中 具体介绍如何使用、


网站公告

今日签到

点亮在社区的每一天
去签到