終於到了Jenkins的發佈了,對於 Jenkins 的搭建,前兩天寫了一篇【Jenkins】安裝 + 升級 踩坑記 ,今天晚上尋思着抽點時間寫一下 Jenkins + Java 的編譯及發佈過程
系統:centos 7
Jenkins: 2.222
Jdk:1.8
Mavne: 3.6.3
與Jenkins環境的搭建,本地新增環境 Maven, 用於編譯Java項目
在開始之前,我們要選擇幾個插件,這裏先說明下插件的安裝
Jenkins -> Plugin Manager 插件管理路徑
在這裏可以選擇自己需要的插件進行安裝,如遇到不起效插件,安裝後重啓 Jeninks 服務
這裏推薦一箇中文插件:搜索 Localization: Chinese (Simplified) 安裝即可
Jenkins CICD 重要環節
1,服務器配置,用於登陸服務器
2,Jdk 配置,及 Maven 配置,用於項目打包
3,Svn 憑證配置(用於訪問 Svn 並拉取代碼)
1,服務器設置,主要作用是將程序發佈到對應服務器上
插件的選擇
Subversion Plug-in Svn 代碼服務插件(Svn 服務器,需要配置鉤子程序,纔可以進行代碼拉取)
Publish Over SSH 這個插件即可解決我們遠程連接服務器的配置插件,安裝後進行如下操作
配置好後進行 TestConfiguration ,查看是否可以成功訪問
這裏不僅可以使用服務器賬號密碼方式,同樣可以使用 Key 進行訪問登錄
2,Jdk 與 Maven 配置
Jenkins -> Global Tool Configuration 全局配置路徑
Maven 全局配置路徑,maven 的 setting.xml 文件地址配置上去
Jdk 全局配置路徑,配置 Jdk 的安裝目錄
在這裏對憑證進行管理,添加憑證,只需要選擇範圍,然後填入用戶名,密碼
上圖爲我已經配置好的 Svn 憑證
由於個人使用的是 Svn,所以這裏已經配置好了
以上爲搭建 Maven 項目打包及發佈的基礎配置,共有,Svn憑證,服務器配置,Maven及Jdk配置
下面,我們步入正題,這裏我只說明下我發佈的目標及思路:
目標:定時完成自動拉取代碼,打包併發布
思路:1,從代碼服務器拉取代碼(會判斷是否存在更新)
2,打包
3,發佈項目到服務器後,關閉原有正在運行的服務,然後替換新包後進行服務啓動
具體配置內容:
1,簡單做下項目描述
2,源碼管理
3,構建觸發器
4,構建觸發器,這裏好幾種,Poll Scm 爲定時設定(定時配置內容,需要根據實際情況而定)
5,不需要構建環境配置
6,構建
說明:maven 命令是 mvn ,這裏採用maven打包,則不需要將 mvn 作爲執行命令的前綴,因爲 命令執行時, 系統會自動將選擇的 Maven 進行命令填充,如,目標爲 clean,實際執行未 mvn clean
7, 構建後的操作(發佈)
這是配置的最後一個環節
8,Exec command,執行腳本命令,該腳本存放到對應服務器目錄下,配置如上圖 /usr/local/application/sh/xxxxx.sh,配置到固定地址
#!/bin/bash
echo '開始執行腳本'
# 按端口kill掉當前運行的程序
kill -9 `lsof -t -i:8083`
# 移動代碼到指定運行目錄下
mv xxxxxxxxxx.jar /usr/local/application/
# 睡3秒
sleep 3s
#啓動服務,並且將日誌記錄到了文件
nohup java -jar xxxxxxxxxx.jar --server.port=8083 --spring.profiles.active=test >/usr/local/application/log 2>&1&
echo '執行完了構建'
配配置結束後,再看看是否可以運行
待打包及發佈過程在代碼中的時候,控制檯輸出: Finished: SUCCESS ,發佈成功