jenkins 自動遠程發布到服務器
1.安裝jenkins
安裝過程:自行百度
英文不好的,不要裝最新版的jenkins。建議安裝Jenkins ver. 2.138.4,此版本可以設置中文語言,設置如圖
2.安裝主要插件
系統管理 > 插件管理,在可選插件中,搜索插件
1)Publish Over SSH
Send build artifacts over SSH
用於上傳發布構建之后的war、jar包等資源,然后執行服務器腳本命令,功能很強大
2)Dingding[釘釘] Plugin
安裝釘釘通知的插件。用於構建完成之后的消息通知。
3.配置環境
插件安裝完成之后,需要配置環境。
1)系統管理>系統設置
- Hostname:主機地址(ip或者域名)
- Port:端口號
- Root Repository Path:連接之后的默認目錄
- User Name:用戶名
- Password/Passphrase:密碼秘鑰
2)系統管理>全局工具配置
配置maven信息:
設置setting文件
設置maven安裝目錄
配置JDK
配置jdk安裝目錄
4.創建job
1)創建一個Job,名為MyTestJob
任務名稱可以自定義,選擇構建【構建一個自由風格的軟件項目】
2)構建設置
如果磁盤空間小,這里可以設置自動刪除策略。如圖設置,表示保留2天的構建,最多2個
3)源碼管理
本地使用的SVN,所以以SVN為例。
Repository URL: SVN的資源地址,路徑直接到項目路徑【本文演示的也是maven項目】如:項目名稱為myProject,那么svn地址就要寫到myProject,https://192.168.1.XXX:XXX/svn/XXX/XXX/myProject
Credentials: 先添加個SVN賬號,點add
ID設置一個唯一的,其他就是用戶名密碼。
設置完成之后,就可以下拉選擇
其他的就默認
4)構建觸發器
定時構建: 不管SVN或Git中數據有無變化,均執行定時化的構建任務 ;
輪詢SCM: 只要SVN或Git中數據有更新,則執行構建任務;
構建語法說明:
格式為:* * * * (五個星);
第一個表示分鍾,取值0~59
第二個表示小時,取值0~23
第三個表示一個月的第幾天,取值1~31
第四個表示第幾月,取值1~12
第五個表示一周中的第幾天,取值0~7,其中0和7代表的都是周日
使用舉例
每隔10分鍾構建一次:H/5 * * * *
每隔1小時構建一次: H H/1 * * *
每月30號構建一次: H H 30 * *
定時構建和輪詢SCM使用互不沖突,可以需要根據項目情況配置。我這里測試環境使用【輪詢 SCM】已經能滿足需求。每五分鍾檢查一次svn更新,如有更新則進行構建。
5)構建
其實構建之前可以設置構建環境,可以根據項目需要去設置。
基於maven可以使用maven進行構建
Maven 版本: 選擇之前配置的maven版本
目標: 設置maven構建語句【不用寫mvn】
配置完maven信息之后,新增ssh配置:
上傳服務器文件路徑說明:
最終上傳到服務器的文件路徑為:
系統設置里的Remote Directory + 構建里的 Remote Directory + Source files
如圖即為:A + C + B
Source files: 相對於workspace目錄,其實也就相當於在myproject目錄下,maven構建之后,會在該目錄下生成target目錄,所以此處可以填寫target\XXX.war
Remove prefix: 移除Source files的前綴。填寫target 如果刪除target的話,最終上傳的時候也會帶着target目錄
Remote Directory: 在系統設置里的Remote Directory 下,生成此處的Remote Directory目錄
Exec command: 上傳之后執行的命令行,可以在服務器制作sh腳本,比如停止tomcat,拷貝war包到tomcat,然后啟動tomcat。
此處命令后期可以在補充上。
6)構建后操作
當然jenkins自動幫我們發布了,我們不可能時時刻刻都盯着jenkins控制台,我們需要它提醒我們,我們可以選擇配置郵件提醒等等,為了方便,我們可以使用釘釘通知。
釘釘群設置
創建個團隊釘釘群,在釘釘群設置里添加【群機器人】,點擊添加
選擇自定義,設置完頭像和名稱
之后會得到一個url
https://oapi.dingtalk.com/robot/send?access_token=XXXXXXXXXX
access_token參數下面設置需要使用
釘釘通知設置
新增構建后操作,選擇訂單通知。
jenkins URL: 輸入當然jenkins的訪問地址
釘釘access token:即為釘釘群機器人的url中的access_token參數
其他的就是選擇釘釘機器人提醒的時機。添加完成之后,jenkins構建就會及時提醒團隊成員。