背景
??當(dāng)時(shí)在學(xué)習(xí)如何用jenkins進(jìn)行自動(dòng)化打包的時(shí)候,去網(wǎng)上找了各種資料,感覺比較零碎。所以這里我將整個(gè)流程完整的梳理一遍
一、下載安裝jenkins
這里有兩種方法可以用。第一種操作方便,可以直接下載安裝包,但是安裝包會(huì)有一些莫名的問題。第二種操作繁瑣一點(diǎn),需要操作命令行,直接命令行安裝:
- 直接登錄官網(wǎng)下載:
jenkins的官網(wǎng)下載地址:https://jenkins.io/download/
因?yàn)檫@里是Mac下面所以需要選擇MacOS的版本:(左邊是穩(wěn)定版本,右邊是測(cè)試版本,所以一般都是選擇左邊的)
1-1-1.png
下載完成以后直接點(diǎn)擊安裝就可以了。之后在瀏覽器輸入鏈接:http://localhost:8080 就行 - 命令行下載安裝(推薦使用):
??①.使用brew下載安裝Jenkins(如果事先沒有安裝過brew工具的童鞋可以參考這篇文章):
1-2-1.jpg

我這邊是因?yàn)橹鞍惭b過了,所以這里會(huì)提示已安裝,如果是沒有安裝過的會(huì)提示XXfiles,XXMB,built in XX minute XX seconds.
??②.安裝完成后,在終端輸入Jenkins啟動(dòng):

這個(gè)地方可能會(huì)出現(xiàn)一個(gè)錯(cuò)誤,由于Jenkins安裝后的端口號(hào)是8080,所以很容易會(huì)跟其他服務(wù)的端口號(hào)沖突,這個(gè)時(shí)候就需要修改端口號(hào),命令行輸入(本文默認(rèn)全部使用8080端口)
vim /usr/local/opt/jenkins/homebrew.mxcl.jenkins.plist
打開以后如下圖所示(初次使用vim的小伙伴可以注意下,在進(jìn)入vim編輯器以后,需要隨便敲一個(gè)字符才能進(jìn)入編輯模式,敲ESC鍵,退出編輯模式。輸入:wq保存并退出。有興趣了解更深的小伙伴可以參考linux VIM基本命令)

進(jìn)入編輯模式,修改--httpPort=XXXX端口號(hào)可以盡量選擇生僻點(diǎn)的,避免跟其他端口沖突
??③.打開瀏覽器輸入鏈接:http://localhost:8080就行了
二、Jenkins的環(huán)境配置
-
打開頁面首先進(jìn)入的是一個(gè)解鎖頁面,這里由于我之前已經(jīng)配置好了,這個(gè)頁面不會(huì)出現(xiàn),所以我從網(wǎng)上找了張圖,大概就是這個(gè)樣子的:
2-1-1.png
路徑會(huì)有所不用,Mac下面路徑這個(gè)
/Users/你的Mac用戶名/.jenkins/secrets/initialAdminPassword
在這個(gè)路徑下找到對(duì)應(yīng)的密碼輸入
- 之后進(jìn)入插件安裝的頁面,這個(gè)頁面下直接選擇[安裝推薦的插件]?;緵]什么問題,如果出現(xiàn)插件安裝失敗,可以參考這篇博客Jenkins插件下載失敗兩種處理辦法.
- 接下來就是環(huán)境變量的配置:
??①.首先點(diǎn)擊左側(cè)系統(tǒng)管理,看到系統(tǒng)設(shè)置,點(diǎn)擊進(jìn)入(無視掉上面的警告和提示吧,對(duì)主流程沒什么影響):
2-3-1.png
??②.進(jìn)入系統(tǒng)設(shè)置頁面
2-3-2.png
選擇環(huán)境變量,點(diǎn)擊Add,設(shè)置SDK的環(huán)境變量,Name的話一定要輸入ANDROID_HOME,Value就是SDK當(dāng)前SDK所在的目錄.

設(shè)置Jenkins的URL,如果是本機(jī)的jenkins,那么直接設(shè)置localhost:8080。如果是服務(wù)器上面的Jenkins,那么設(shè)置服務(wù)器的IP就OK了。
設(shè)置郵箱地址,這里設(shè)置的是系統(tǒng)管理員郵箱,下面有地方會(huì)用到。要確保設(shè)置正確。

上面的Extended E-mail Notification和下面的郵件通知輸入的內(nèi)容保持一致即可

SMTP服務(wù)器就是上面系統(tǒng)管理員郵箱的SMTP,本文選擇的是網(wǎng)易163郵箱,所以設(shè)置的是smtp.163.com。如果是QQ郵箱,那么設(shè)置的是smtp.qq.com。后綴就是郵箱地址@后面的內(nèi)容。這里重點(diǎn)說明一下用戶名需要跟系統(tǒng)管理員郵箱保持一致,而且密碼是各大郵箱的授權(quán)碼,并不是郵箱的登錄密碼,要切記,否則郵件就會(huì)發(fā)送失敗。其他就按照?qǐng)D示寫就可以了。然后點(diǎn)擊保存。
附:
網(wǎng)易163郵箱授權(quán)碼獲取教程
QQ郵箱授權(quán)碼獲取教程
新浪郵箱授權(quán)碼獲取教程
阿里云郵箱授權(quán)碼獲取教程
谷歌郵箱授權(quán)碼獲取教程
??③.系統(tǒng)管理->全局工具配置

JDK installations一欄里面點(diǎn)擊Add JDK,Name隨便取,不過最好對(duì)應(yīng)好版本號(hào);JAVE_HOME就設(shè)置為當(dāng)前Mac下Java的安裝路徑。當(dāng)然也可以設(shè)置成自動(dòng)安裝

git一欄配置:Path to Git executable里面設(shè)置的就是Git的安裝路徑(不知道Git安裝目錄的小伙伴可以參考這篇文章Mac和Windows快速查看git安裝目錄)

gradle配置:一樣名字最好跟著版本號(hào),GRADLE_HOME就設(shè)置為gradle的安裝目錄

Maven庫的配置(如果項(xiàng)目里面沒有用到maven庫,這一項(xiàng)可不必添加):同上
最后點(diǎn)擊保存
三、項(xiàng)目配置
-
新建任務(wù):
3-1-1.png
輸入應(yīng)用名字,選擇構(gòu)建一個(gè)自由風(fēng)格的軟件項(xiàng)目,點(diǎn)擊OK
-
進(jìn)入項(xiàng)目配置頁面:
3-2-1.png
(本文選擇的是git,如果有小伙伴是用SVN的,需要選擇第三個(gè)radiobutton:Subversion.)輸入git服務(wù)器上面可以clone的項(xiàng)目的地址。
然后添加證書:

類型如圖設(shè)置,UserName和Password填寫Git服務(wù)器上面你登錄的用戶名和密碼,點(diǎn)擊添加就OK了。
-
項(xiàng)目配置頁面往下拉,有個(gè)Add build step按鈕,點(diǎn)擊選擇Invoke Gradle script。出現(xiàn)下圖所示:
3-3-1.png
先選擇Invoke Gradle:Gradle Version里面選擇之前系統(tǒng)設(shè)置里面配置好的那個(gè)Gradle(這個(gè)時(shí)候Gradle的名字增加版本號(hào)的優(yōu)勢(shì)就體現(xiàn)出來了,你可以選擇你想要的版本的gradle)
在選擇Use Gradle Wrapper:Tasks里面填寫build
此時(shí)需要點(diǎn)擊保存,然后立即構(gòu)建項(xiàng)目,將項(xiàng)目從git上面拉下來到j(luò)enkins目錄下。然后在重新打開配置頁面,頁面下拉到同一個(gè)位置,右下角的Advanced按鈕點(diǎn)擊出現(xiàn)如下畫面:

在jenkins目錄下面找到剛才從git上面下拉的項(xiàng)目的路徑,將項(xiàng)目中的build.gradle 路徑寫入Build File里面
-
繼續(xù)往下拉,有個(gè)Add post-build action按鈕,點(diǎn)擊按鈕選擇Editable Email Notification,然后點(diǎn)擊最下面Advanced settings按鈕,出現(xiàn)如下圖示:
3-4-1.png
點(diǎn)擊Add Trigger選擇發(fā)送郵件的時(shí)機(jī),我這里選擇了總是,也就是說只要Jenkins進(jìn)行一次打包,不論成功失敗都會(huì)發(fā)送一次郵件。然后點(diǎn)擊Advanced按鈕:

Add按鈕點(diǎn)擊選擇要發(fā)送郵件的集合,本文選擇了開發(fā)者和接受者列表集合。
接下來設(shè)置郵件接收列表集合。Content里面的內(nèi)容根據(jù)項(xiàng)目需求填寫,其他的可以直接按照如圖所示填寫即可。
最后點(diǎn)擊保存
PS:另外點(diǎn)擊Add post-build action可以再設(shè)置E-mail Notification,設(shè)置對(duì)應(yīng)的郵箱。不過我試了下在沒有設(shè)置這個(gè)的情況下,Jenkins依然可以打包發(fā)送郵件,只是多了個(gè)警告,不知道哪位大佬可以解惑一下
Not sending mail to unregistered user xxx@qq.com because your SCM claimed this was associated with a user ID ‘xxx' which your security realm does not recognize; you may need changes in your SCM plugin
Sending email to: xxx@qq.com
四、項(xiàng)目運(yùn)行

左側(cè)菜單欄點(diǎn)擊立即構(gòu)建,Jenkins就會(huì)進(jìn)行自動(dòng)化打包了,耐心等候幾十秒到兩三分鐘左右的時(shí)間,打包完成后會(huì)在郵箱里面收到一封郵件。打包log最后出現(xiàn):
Sending email for trigger: Always
Sending email to: XXX@qq.com
Finished: SUCCESS
就代表打包順利完成。
參考博客:
Android 使用 Jenkins 實(shí)現(xiàn)自動(dòng)化打包【流程】&【踩坑】
MAC上搭建Jenkins實(shí)現(xiàn)Android自動(dòng)打包
Jenkins 配置自動(dòng)發(fā)送郵件,測(cè)試郵件發(fā)送失敗
Mac 使用HomeBrew安裝的Jenkins修改端口號(hào)








