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.0v16.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 |
這里不會詳細展開講每個插件的具體使用方法,但是會在后面的案例中 具體介紹如何使用、