jenkins配置git和maven
先把總體流程梳理一下:
+-------------git:拉取最新提交程式碼,分支可指定,放在jenkins工作空間,如:/var/lib/jenkins/workspace
|
+-------------maven:打包,從jenkins工作空間上按pom.xml執行配置的maven命令,如:clean install XXX
jenkins-------| |
| +-------------nexus:settings.xml指定maven私服,去nexus上拉取依賴構件
+------------Publish Over SSH:配置執行使用者,如:springCloudGateway,打包完上傳到使用者根目錄
|
+------------bootstrap.sh:啟動指令碼,將上傳的jar包跑起來
第一步:先把外掛裝好。進入之前搭建的jenkins(jenkins安裝參見centos6.9安裝jenkins最新穩定版2.249.2 )介面,點選左上角的Jenkins圖示,提示安裝預設外掛。我看有一些是我需要的,比如git外掛,我就點了確定,結果自動給我安裝了一堆外掛,包括翻譯。重新左上角圖示,提示設定jenkins的URL:
自動提示了jenkins的URL的ip和埠,點選確定後進入歡迎頁,這裡不用管它:
如果有些外掛還沒有安裝,可以確認一下,點開外掛管理:
點選“已安裝”,我們看下有沒有maven外掛,在輸入框中敲“maven”,搜不到maven:
所以還得再裝一下maven外掛,點選可選外掛,搜“maven”,勾選“Maven Integration”,點“直接安裝”:
同樣的,裝一個Publish Over SSH外掛,用來通過ssh命令傳送maven的構建:
第二步:配置全域性變數,新增我們要部署的使用者springCloudGateway:
點“Configure System”後,拉到最下面,在SSH Servers這裡點選新增:
去新建個使用者:
[root@VM-0-14-centos ~]# useradd springCloudGateway [root@VM-0-14-centos ~]# passwd springCloudGateway
再回來配置一下:
點一下“高階”,把密碼也配置好:
最後點選儲存,記得點“Test Configuration”測試一下能否連通springCloudGateway環境:
另外把mavne的jenkins本地倉庫也設定一下:
第三步:全域性工具配置,點選Manage Jenkins -> Global Tool Configuration:
3.1 設定maven的setting檔案,使用之前安裝的maven3.6.3的配置(安裝參見centos6.9安裝maven3.6.3):
3.2 設定JDK1.8家目錄:
3.3 設定git執行指令碼路徑(安裝參見centos6.9搭建git1.7.1 ):
3.4 設定maven安裝路徑:
第四步:前面都是鋪墊,現在才是關鍵——建立新任務:
4.1 輸入任務名稱,選擇Maven專案,點選“確定”:
4.2 配置原始碼,把之前spring-cloud-gateway的git clone連線複製過來即可:
因為我們沒有把jenkins的公鑰加入到git倉庫的authorized_keys檔案中,需要整一下:
[root@VM-0-14-centos jenkins]# ssh -keygen Bad escape character 'ygen'. [root@VM-0-14-centos jenkins]# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: 4b:d8:9f:2c:19:e6:c7:71:e8:e2:5d:10:16:11:9b:25 root@VM-0-14-centos The key's randomart image is: +--[ RSA 2048]----+ | Eo. | | * | | = | | o . o | | . S + . | | + O = | | * B . | | . = . | | . . | +-----------------+ [root@VM-0-14-centos jenkins]# cat ~/.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA5LemBOUc1P5duv9ArXRzzehmHJnTaUdEy+FwDWDTLa1YSwE9I2O2y8oUAYSlbHa7Fas7ZqLJ+amg7zb6nq3WiBGPnhd+O7+ALvTnkF+a05x51YBqZlj0jr+m+wgXOrKKm9qQaVflAMAas6Q1K4cQBVSgy0oqE5RWffv7yKjoV02n2D7R8/0YtVpkaTYQjTaorxcHHQB9qTDSkRETzC4fXclXVUEJqZjzSrjIspyhRnHXx+XgQqeCxA8ziwMgkRmPcPmrh8UMLE3wBkB+fu3BAIsw6kkT0snYovBFQN2vLxi0AKkzL01bvn5xIVY7bQxLFNfgrYtmRsJxkNQ9rDs/2Q== root@VM-0-14-centos
上面的公鑰是在root使用者下生成的,複製“ssh-ras...",寫入到git使用者下的authorized_keys:
[root@VM-0-14-centos jenkins]# vi /home/git/.ssh/authorized_keys
重新整理介面,報錯提示消失了:
4.3 構建環境這裡打鉤,加上時間戳:
4.4 配置預處理:
使用者選擇我們之前在第2步配置的springCloudGateway,在啟動前執行一下停止指令碼:
上面紅框框裡的指令碼詳情:
sh ./bootstrap.sh ./spring-cloud-gateway-0.0.1-SNAPSHOT.jar stop rm -rf ./spring-cloud-gateway-0.0.1-SNAPSHOT.jar
4.5 配置maven執行指令碼:
4.6 配置後處理:
4.7 配置啟動指令碼的執行命令:
最後點選儲存,可以準備執行jenkins構建任務了:
檢視構建日誌: