之前打包都是RD通過Android studio或者Eclipse /adt手動打包生成apk給QA測試,現在技術總監要求對項目進行持續集成,也就是說通過某種方式定時(比如每天凌晨三點)自動將SVN庫中最新的代碼down下來編譯打包,QA也可以通過Jenkins手動構建最新的代碼打包,不用每次都由RD手動打包生成apk黑QA,而且多渠道打包又很繁瑣.
軟件環境:
1、 windows7 64bit;
2、 jdk1.8
3、 android sdk
4、 gradle2.10
首先得配置環境變量,JDK,Android SDK,Gradle 就不用說了,Android開發應該都配好了,配置tomcat,直接去官網下載tomcat,解壓下載好的tomcat,
複製路徑配置環境變量,新建環境變量:
變量名:CATALINA_HOME
變量值:解壓後的路徑
找到path加上;%CATALINA_HOME%\lib啓動tomcat,ok了
接下來就是安裝Jenkins了.官網下載jenkins
點擊Download Jenkins,我下載的是2.23版本.
解壓該文件後
點擊安裝OK了.安裝完成後會自動跳轉到localhost:8080下.ok靜靜地等待網頁加載,時間可能會久一點,耐心的等待.
加載完成後會提示選擇安裝插件,第一個是默認推薦的插件,第二個是自己選擇要安裝的插件,插件安裝完後創建用戶和用戶名
完事後登陸.
點擊系統管理
接下來的就是下載我們需要的插件了
選擇我們需要的插件Android Lint Plugin,Gradle Plugin,svn需要的插件在安裝的時候推薦安裝裏面已經安裝好了
安裝好了後進入到系統管理->系統設置,修改系統設置
Jenkins Location標籤中
系統管理員郵件地址:[email protected]
Extended E-mail Notification標籤中
SMTP server : smtp.163.com
Default user E-mail suffix :[email protected]
Default Content Type :Plain Text(text/plain)
Default Recipients :[email protected],[email protected],...,[email protected]
Reply To List : [email protected]
Default Subject :構建通知:$PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!
Default Content :
(本郵件是程序自動下發的,請勿回覆!)<br/>
項目名稱:$PROJECT_NAME<br/>
構建編號:$BUILD_NUMBER<br/>
svn版本號:${SVN_REVISION}<br/>
構建狀態:$BUILD_STATUS<br/>
觸發原因:${CAUSE}<br/>
構建日誌地址:<a href="${BUILD_URL}console">${BUILD_URL}console</a><br/>
構建地址:<a href="$BUILD_URL">$BUILD_URL</a><br/>
變更集:${JELLY_SCRIPT,template="html"}<br/>
郵件通知標籤中
SMTP服務器:smtp.163.com
用戶名:admin
密碼:123456
SMTP端口:選中SSL填465,沒選中填25
Reply-To Address:[email protected]
字符集:UTF-8
設置完成後就可以新建項目了
點擊ok
項目使用的是svn,如果項目使用git的話,需要下載git插件.其中源碼管理是一樣的.
注:svn倉庫地址如果需要賬號密碼登錄,直接點擊add添加
構建觸發器
下一步構建:
由於項目使用的是studio,所以選擇了gradle script:
也可以選擇Invoke gradle,系統環境變量裏配置了gradle環境變量,選擇相應的gradle版本.
使用Jenkins編譯AndroidStudio工程進行簡單地持續集成的時候,有些配置要注意。
- 新建Job的時候選擇使用GradleWrapper而不是單純的Gradle。AndroidStudio編譯的時候,使用的GradleWrapper,因此需要這個。具體的GradleWrapper的位置在gradlew.bat這個批處理文件中配置。因此如果編譯過程出現GradleWrapperMain找不到的時候,可以嘗試對這個批處理文件進行調試,查看信息。
- AndroidStudio項目的local.properties中有一個sdk.dir屬性,用於聲明sdk的地址。這個地址一般是開發機器的環境配置有關。因此Jenkins所在的機器配置可能會不一致造成sdk找不到這個錯誤。因此提交SVN的時候建議修改這個屬性值爲Jenkins所在機器的配置參數。一個相對合適的方法是刪除這個屬性,然後提交,在Jenkins所在的機器配置ANDROID_HOME這個環境變量,爲SDK的地址。這樣編譯的時候會從ANDROID_HOME這個環境變量地址去找SDK。
- 建議Jenkins所在機器儘可能包括最新的SDK,同時開發環境也更新到最新SDK,這樣編譯的時候就不會出現對應API版本的SDK不存在的問題。也不需要提交的時候修改API版本了。
ok,點擊保存,構建項目
構建中...
ok,構建成功
查看項目
渠道包已經打好,點擊對應的apk,QA就可以下載安裝了.
PS:本人也是小白.第一次搞這個,踩了幾天的坑.後續會持續更新此貼.