1簡介
- 在看該文章之前你應(yīng)該知道怎么使用jenkins進(jìn)行持續(xù)集成了maven---10使用Jenkins進(jìn)行持續(xù)集成
- 持續(xù)集成中非常重要的一個(gè)步驟就是反饋。集成狀態(tài)信息必須及時(shí)地通知給相關(guān)團(tuán)隊(duì)成員,最常見通知方式就是郵箱。
- 下面介紹如何配置jenkins來及時(shí)發(fā)送集成反饋郵件。
- 1.先配置郵件服務(wù)器信息(Jenkins用來給開發(fā)人員發(fā)提示郵件的郵件服務(wù)器,里面當(dāng)然包含jenkins使用的郵件地址,一般配置公司的郵箱)
- 2.配置jenkins中的任務(wù)使用郵件反饋。
2配置郵箱服務(wù)器
- 該郵件服務(wù)器是Jenkins用來給開發(fā)人員發(fā)提示郵件使用的。
2.1配置參數(shù)
- 配置位置:系統(tǒng)管理->系統(tǒng)設(shè)置-郵件通知。(系統(tǒng)設(shè)置中還有一個(gè)Extended E-mail Notification有可能是對(duì)郵箱通知的更多的配置)
-
配置選項(xiàng):
郵箱配置- SMTP 服務(wù)器:SMTP郵件服務(wù)器地址。
用戶默認(rèn)郵件后綴:默認(rèn)用戶郵件后綴。使用情況:比如默認(rèn)是@163.com,當(dāng)用戶沒有配置郵箱地址的時(shí)候,jenkins給用戶發(fā)郵件會(huì)在其用戶名后面加上該后綴作為接受郵箱。栗子:mike沒有配置郵箱,jenkins需要給他發(fā)送郵件時(shí)就會(huì)給mike@163.com發(fā)送郵件。好處:公司員工郵箱后綴都一樣,員工用戶名+默認(rèn)后綴就是他的郵箱時(shí)就很方便。
- 用戶名:系統(tǒng)管理員郵件地址,即jenkins郵件提示所使用的發(fā)送地址。
- 密碼:上面用戶名對(duì)應(yīng)的密碼。(一般第三方登錄此處填寫授權(quán)碼或其他的代替)
- 其他配置使用默認(rèn)。
2.2測試配置信息
- 配置完后測試一下郵箱服務(wù)器是否配置成功。
- 案例:使用配置的郵箱服務(wù)器發(fā)送給一封郵件看看是否成功。
2.2.1配置測試接收方郵箱
-
先配置系統(tǒng)管理員郵件地址,該處配置的郵件要和下面的使用的發(fā)送郵件一致不然會(huì)出現(xiàn)553錯(cuò)誤。
Paste_Image.png 選中郵箱通知下面的[通過發(fā)送測試郵件測試配置 ]選項(xiàng),填寫【Test e-mail recipient】,然后點(diǎn)擊測試按鈕。
2.2.2測試失敗

2.2.3原因分析
- 沒有權(quán)限,百度后發(fā)現(xiàn)需要對(duì)163郵箱開啟pop3/smtp服務(wù),默認(rèn)是關(guān)閉的。
- 開啟pop3/smtp服務(wù)后,163在第三方客戶端使用了授權(quán)碼來代替密碼。所以需要將上面的【密碼】配置填寫163里的授權(quán)碼。
2.2.4開啟pop3/smtp服務(wù)
-
1設(shè)置163郵箱開啟pop3/SMTP服務(wù)
(qq類似都在郵箱設(shè)置中)
以下設(shè)置都是連續(xù)的展開的。 -
1.1 pop3/smtp服務(wù)
Paste_Image.png


- 1.2設(shè)置授權(quán)碼
-
1.2.1手機(jī)認(rèn)證
Paste_Image.png - 1.2.2設(shè)置授權(quán)碼(在第三方客戶端的輸入的密碼就是該授權(quán)碼)


2.2.4再次測試成功
-
設(shè)置的授權(quán)碼
把郵箱密碼填寫剛才設(shè)置的授權(quán)碼
Paste_Image.png 測試成功

2.3保存配置信息
點(diǎn)擊保存按鈕保存配置信息。
3配置jenkins任務(wù)使用郵件反饋
jenkins郵件服務(wù)器配置完城后,就需要配置jenkins任務(wù)使用郵件反饋。
3.1配置位置
項(xiàng)目配置界面-》構(gòu)建后操作(英文叫Post-build Actions)。選擇E-mail Notification選項(xiàng)。

3.2進(jìn)行配置
3.2.1什么樣構(gòu)建會(huì)觸發(fā)郵件反饋
* 郵件反饋的觸發(fā)條件有以下幾項(xiàng),但是觸發(fā)后具體的發(fā)送通知和下面【郵件發(fā)給誰】配置有關(guān)。

3.2.2郵件發(fā)給誰
通過E-mail Notification中的三個(gè)可選擇項(xiàng)來解釋:(有的界面選項(xiàng)內(nèi)容可能是英文)
- Recipients中配置一個(gè)郵件列表(用空格分隔),列表中的用戶會(huì)收到所有郵件反饋,一般來說負(fù)責(zé)人應(yīng)該在這個(gè)列表中。
- [單獨(dú)發(fā)送郵件給對(duì)構(gòu)建造成不良影響的責(zé)任人]選項(xiàng)。選擇該選項(xiàng)后,郵件會(huì)發(fā)送給所有與這次構(gòu)建相關(guān)的成員,即那些提交了本地構(gòu)建代碼更新的成員。由于jenkins無法精確第知道到底是誰的代碼提交導(dǎo)致了構(gòu)建失敗,因此只能通知所有與代碼更新相關(guān)的成員。
- [每次不穩(wěn)定的構(gòu)建都發(fā)送郵件通知]選項(xiàng):選中后表示為所有不穩(wěn)定的構(gòu)建觸發(fā)反饋。不選中,只有成功構(gòu)建后第一次不穩(wěn)地構(gòu)建才會(huì)出發(fā)郵件反饋。推薦選中。
3.2.3推薦配置

4測試郵件反饋
4.1測試任務(wù)介紹
- 這個(gè)測試的任務(wù)是maven---10使用Jenkins進(jìn)行持續(xù)集成中的那個(gè)helloword任務(wù)。
- helloword是jenkins中的一個(gè)持續(xù)集成的任務(wù),任務(wù)源碼是github上的cidemo項(xiàng)目,cidemo是一個(gè)maven項(xiàng)目,我克隆cidemo項(xiàng)目在本地后,會(huì)在本地編輯cidemo中的測試代碼部分讓其構(gòu)建測試代碼時(shí)失敗,從而造成項(xiàng)目構(gòu)建不穩(wěn)定或者失敗。然后通過git上傳代碼到github上,jenkins中的helloword任務(wù)檢測到github上有新的提交時(shí)就會(huì)進(jìn)行簽出代碼到j(luò)enkins工作空間進(jìn)行構(gòu)建,當(dāng)調(diào)用maven命令進(jìn)行構(gòu)建測試代碼時(shí)就會(huì)失敗,此時(shí)就會(huì)觸發(fā)jenkins的郵件反饋系統(tǒng)發(fā)送給我配置到的郵箱。
4.2任務(wù)通知郵箱和人員郵箱配置
4.2.1helloword任務(wù)的郵件通知配置。

4.2.2開發(fā)人員郵箱配置
-
該用戶會(huì)修改代碼,代碼修改失敗會(huì)發(fā)送失敗郵件給他,所以除了上面兩個(gè)郵箱外,還這個(gè)郵箱也會(huì)得到構(gòu)建狀態(tài)反饋。
Paste_Image.png - 至于這個(gè)用戶是怎么來的,我會(huì)在下一節(jié)講一下,因?yàn)槲彝嗽趺磥淼模▏澹?/li>
4.3修改代碼
- 通過git在本地修改代碼的測試部分,然后提交到github上,此處可以參考maven---10使用Jenkins進(jìn)行持續(xù)集成中操作。
- 提交到github上后,helloword會(huì)根據(jù)【構(gòu)建觸發(fā)器策略】來觸發(fā)新的構(gòu)建工作。
4.4查看郵箱結(jié)果
郵箱里給出了錯(cuò)誤的日志等信息。至于郵箱內(nèi)容為什么會(huì)是這些?在哪里配置的?我還不清楚,我才有可能和系統(tǒng)配置里的Extended E-mail Notification配置項(xiàng)有關(guān)。

4.5修復(fù)問題后郵箱通知結(jié)果
- 修改代碼將上面故意制造的問題修復(fù),jenkins會(huì)再次發(fā)送郵件通知。
-
為了避免混淆,我把594389970這個(gè)用戶的郵箱該成了另一個(gè)。
Paste_Image.png -
把 Recipients中郵箱只設(shè)置了一個(gè)。
Paste_Image.png - jenkins郵箱服務(wù)器使用的郵箱不變。
-
修改問題后jenkins反饋的內(nèi)容如下:
反饋郵箱內(nèi)容
總結(jié)
- 郵件反饋是持續(xù)集成中很重要的一項(xiàng)功能,必須要會(huì),不然錯(cuò)誤信息都得不到。配置步驟在說一下:1.先配置郵箱服務(wù)器,jenkins用來給別人發(fā)通知郵件使用的。2.配置任務(wù)啟用郵箱反饋,并配置相應(yīng)反饋策略和需要知道項(xiàng)目所有狀態(tài)的通知郵箱(Recipients中配置,一般是項(xiàng)目經(jīng)理)。3.是配置開發(fā) 人員郵箱。
遺留問題
- 關(guān)于郵箱模板內(nèi)容沒有介紹。
留言
有什么不懂的一起探討一下吧,歡迎留下寶貴意見,喜歡就點(diǎn)個(gè)贊吧(哈哈),多謝鼓勵(lì)。








