??調(diào)研需求:
以前都是通過IDE(Eclipse or Android Studio)手動(dòng)生成apk通過QQ或者郵件發(fā)送給測(cè)試人員進(jìn)行測(cè)試塞俱,不僅影響平常開發(fā)的效率爽柒,也給開發(fā)帶來了很多不必要的痛苦和麻煩肤视,現(xiàn)在要求對(duì)項(xiàng)目進(jìn)行持續(xù)集成斋攀,也就是說通過某種方式定時(shí)(比如每晚凌晨三點(diǎn))自動(dòng)將git庫(kù)中最新的代碼pull下來編譯打包捐下,測(cè)試人員每天早上上班都能拿到最新的代碼打包的Apk
Jenkins介紹:
Jenkins是一個(gè)開源軟件項(xiàng)目到腥,它前身是Hudson朵逝,是基于Java開發(fā)的一種持續(xù)集成工具,用于監(jiān)控持續(xù)重復(fù)的工作乡范,旨在提供一個(gè)開放易用的軟件平臺(tái)配名,使軟件的持續(xù)集成變成可能。
主要流程:
????????Windows環(huán)境配制?
????????Jenkins, 安裝篓足,啟動(dòng)段誊。
????????配置系統(tǒng)配置
????????創(chuàng)建任務(wù)
????????構(gòu)建任務(wù)闰蚕,后續(xù)上傳fir栈拖、發(fā)企業(yè)微信通知
????????遇到的問題
Windows環(huán)境配置:
????????Android SDK? ? 用AndroidStudio使用的SDK路徑?
????????Gradle? ? ?用AndroidStudios使用的gradle路徑
????????JDK (點(diǎn)擊跳轉(zhuǎn)下載地址)
????????Git (點(diǎn)擊跳轉(zhuǎn)下載地址)
????????配置環(huán)境變量:
????????JAVA_HOME? ? ? ? ? ? ? ?C:\Program Files\Java\jdk-11.0.6
????????ANDROID_HOME? ? ? ?C:\Users\LX\AppData\Local\Android\Sdk
????????GRADLE_HOME? ? ? ? ?C:\Users\LX\.gradle\wrapper\dists\gradle-5.6.4-all\ankdp27end7byghfw1q2sw75f\gradle-5.6.4\bin
????????注意:JAVA_HOME配置到文件夾位置,GRADLE_HOME 配置到bin目錄
Jenkins的安裝與啟動(dòng)
????????Jenkins的下載(點(diǎn)擊跳轉(zhuǎn)下載地址)没陡,下載msi
????????安裝? ?雙擊msi進(jìn)行傻瓜式安裝涩哟,安裝過程需要設(shè)置端口號(hào);選擇jdk版本盼玄,目前Jenkins支持java1.8-11
????????啟動(dòng)? 安裝完成后會(huì)自動(dòng)打開http://localhost:5555/
????????啟動(dòng)完成后會(huì)提示輸入一個(gè)密碼贴彼,上面有路徑,我們直接進(jìn)去打開拷貝就可以了埃儿。
然后會(huì)出現(xiàn)安裝選擇頁面器仗,我們選擇安裝推薦的插件就可以。
然后就會(huì)出現(xiàn)以下界面童番,我們等待安裝就可以了精钮,這個(gè)安裝過程會(huì)灰常慢。 我們也可以看到他會(huì)安裝gradle剃斧、git等插件轨香。
然后安裝完成后設(shè)置用戶名稱和密碼即可,到此Jenkins就算安裝完成了幼东。
Jenkins配置系統(tǒng)配置
點(diǎn)擊系統(tǒng)管理(Manage Jenkins)->系統(tǒng)設(shè)置配置(Global Tool Configuration)? -> Jdk臂容、Android Sdk、Gradle根蟹、Android Ndk環(huán)境變量脓杉,至此Jenkins系統(tǒng)配置就完成了,接下來讓我們來創(chuàng)建一個(gè)項(xiàng)目吧<虼G蛏ⅰ!
?
創(chuàng)建任務(wù)
????新建item
構(gòu)建任務(wù)
????General
????源碼管理
? ? ?構(gòu)建-增加構(gòu)建步驟(筆者只用過以下兩種方式)
????????????1买决、Invoke Gradle Script(創(chuàng)建gradle腳本直接進(jìn)行打包)
? ? ? ?????????????第一種:直接使用之前配置的gradle版本沛婴,tasks里直接添加task命令:clean? ????????????????????assembleDebug
? ? ? ?????????????第二種:使用項(xiàng)目自帶的gradle版本
????????????2吼畏、Execute Window batch window(直接執(zhí)行命令行)
? ? ? ????????????首先cd到項(xiàng)目的根目錄,然后執(zhí)行? gradle assembleDebug 進(jìn)行打包嘁灯,筆者這里寫? ? ? ? ? ? ? ? ? ? 的有參數(shù)的泻蚊,動(dòng)態(tài)進(jìn)行打debug或者release包
? ? ? ? ? ? ? ? ? 這里筆者還添加了? -g C:\gradle-cache,是為了解決windows遇到的權(quán)限問題? ? ? ? ? ? ? ? ? ? ? ? ? ?(詳見遇到的問題)
構(gòu)建后操作(發(fā)包到fir丑婿,然后企業(yè)微信機(jī)器人通知)
1性雄、發(fā)包到fir:需要在系統(tǒng)配置里添加 upload to fir.im插件
需要fir.im網(wǎng)站的登錄token,其余的選項(xiàng)不做過多解釋羹奉,都可以不填
token的獲让胄(登錄fir.im)
?
2、發(fā)送企業(yè)微信機(jī)器人通知
? ? ? 安裝Qy Wechat Notification插件
?遇到的問題
報(bào)錯(cuò)信息:
C:\Windows\System32\config\systemprofile\.gradle\caches\transforms-1\files-1.1\appcompat-v7-27.0.2.aar\648d88cb55d42908b7f13e3cf39f35e4\res\color\abc_secondary_text_material_dark.xml: error: file not found.C:\Windows\System32\config\systemprofile\.gradle\caches\transforms-1\files-1.1\picture_library-v2.0.1.aar\f2ffe59924c8d15a99121bd8efdc1525\res\drawable\btn_left_true.xml: error: file not found.Error: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details:app:mergeGooglePlayDebugResourcesFAILEDFAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':app:mergeGooglePlayDebugResources'.> Error: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details* Try:Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
解決方案: