Gradle For Android(8)--建立持續(xù)集成

介紹

Continuous Integration(CI)持續(xù)集成可以在團(tuán)隊(duì)中每天構(gòu)建非常多次。每一次自動(dòng)構(gòu)建都可以驗(yàn)證最新Push到主倉庫的提交。這種方式可以幫助我們很快的解決問題,也可以提高我們的開發(fā)效率,提升代碼質(zhì)量。

對于Android CI我們也有一些選項(xiàng)。大多數(shù)使用的是Jenkins,TeamCity,以及Travis CI。Jenkins是最大的系統(tǒng),它擁有上千個(gè)可用的插件,也有很多的Contributor對這個(gè)開源項(xiàng)目做出巨大貢獻(xiàn)。TeamCity是從JetBrains孵化出來的項(xiàng)目。而Travis CI主要也用于開源項(xiàng)目。

我們將看看這些CI系統(tǒng),并且為看看那如何讓Gradle工作在這些系統(tǒng)上。接下來從這幾個(gè)方面介紹CI系統(tǒng):

  • Jenkins
  • TeamCity

Jenkins

Setting up Jenkins

如果你沒有在機(jī)器上安裝Jenkins,那么可以從Jenkins官網(wǎng)中下載,并且按照以下步驟安裝。

首先,需要確保機(jī)器上已經(jīng)安裝了JDK,如果沒有的話,需要在JDK官網(wǎng)進(jìn)行安裝

接著,確保已經(jīng)安裝Android SDK以及Build Tool。不需要在打包機(jī)器上面安裝IDE,除非你想在打包機(jī)器上打開一個(gè)Project。如果你想安裝SDK Tools,你可以在Android Developer中下載。當(dāng)下載安裝完畢后,你需要在SDK的目錄下執(zhí)行android命令,來安裝API以及Build Tools。

一旦Java和Android SDK安裝完成后,你需要在Jenkins里面配置。

  • 在打包機(jī)器上打開瀏覽器,并且跳轉(zhuǎn)到Jenkins的主頁
  • 跳轉(zhuǎn)到Manage Jenkins | Configure System并且滑動(dòng)到Global屬性
  • 添加ANDROID_HOMEJAVA_HOME兩個(gè)環(huán)境變量
    Jenkins Global

你也可以安裝Gradle插件。在Manage Jenkins | Manage Plugins頁面中,跳轉(zhuǎn)到AvaliableTab,搜索Gradle即可。當(dāng)你找到了Gradle插件后,下載安裝完后重啟即可。

Configuring the build

一旦安裝完后,你可以在Jenkins中創(chuàng)建一個(gè)CI工程。首先,你需要設(shè)置VCS倉庫,讓Jenkins知道從什么地方獲取源代碼。你可以在Jenkins中設(shè)置基于該倉庫來自動(dòng)構(gòu)建你的App或者Library,或者選擇手動(dòng)構(gòu)建。為了真正的開始進(jìn)行構(gòu)建,我們需要添加一個(gè)實(shí)現(xiàn)了Gradle的構(gòu)建腳本。我們可以通過Gradle Wrapper來配置Jenkins。使用Gradle Wrapper不僅消除了在構(gòu)建服務(wù)器上手動(dòng)安裝Gradle的需要,而且可以確保自動(dòng)處理Gradle的任何更新

你可以為構(gòu)建腳本輸入一個(gè)好的描述,并且添加兩個(gè)開關(guān)infostacktraceinfo開關(guān)用來輸出構(gòu)建過程中的信息,而這些信息在出錯(cuò)的時(shí)候非常有用。如果構(gòu)建的過程中出現(xiàn)了一個(gè)異常,stacktrace開關(guān)則會(huì)打印出這個(gè)異常的Stack trace。有時(shí)候你需要更多的信息,則我們可以使用full-stacktrace開關(guān)來代替。

在配置完后,指定你想要的Gradle Tasks就可以開始執(zhí)行了。首先執(zhí)行clean task來保證之前的構(gòu)建輸出不會(huì)留存。第二部執(zhí)行build task,開始觸發(fā)所有Variant的構(gòu)建。Jenkins配置如下:

Jenkins Configuration

當(dāng)你保存完配置后,就可以開始執(zhí)行Build任務(wù)了。

當(dāng)成功構(gòu)建完后,就會(huì)生成各個(gè)Varaints的APK。你可以指定Gradle tasks來分發(fā)APK。最后,會(huì)統(tǒng)一看如何分發(fā)APK,因?yàn)榉职l(fā)這個(gè)步驟不屬于任何一個(gè)構(gòu)建系統(tǒng)。

TeamCity

和Jenkins不一樣,TeamCity是免費(fèi)的開源工程。它創(chuàng)建并且受到JetBrains的管理。TeamCity也支持Gradle的Android構(gòu)建。

Setting up TeamCity

我們可以從JetBrains官網(wǎng)中下載TeamCity并且安裝。

同樣,我們在開始使用TeamCity構(gòu)建Android App之前,也需要安裝JDK,Android SDK以及Build Tools。同樣也需要ANDROID_HOME的環(huán)境變量來指定Android SDK的目錄。

與Jenkins不同的是,TeamCity不需要任何插件觸發(fā)Gradle構(gòu)建,因?yàn)樗鼉?nèi)置了Gradle的支持。

Configuring the build

為了配置Android構(gòu)建,我們可以通過創(chuàng)建一個(gè)新的Project。而我們需要做的就是提供一個(gè)名字。一旦Project創(chuàng)建完后,就可以開始配置它了。
首先,我們需要添加一個(gè)VCS路徑,讓TeamCity可以找到工程的源代碼。然后創(chuàng)建一個(gè)新的構(gòu)建配置。然后將VCS路徑綁定到構(gòu)建配置中。當(dāng)配置完后,就可以開始添加一個(gè)新的構(gòu)建腳本了。如果你按下了Auto-detect build steps按鈕,TeamCity會(huì)基于該工程的內(nèi)容決定必要的構(gòu)建步驟。就像Gradle-base的工程配置,如下:

Build steps

TeamCity會(huì)使用Gradle也支持Gradle Wrapper。你可以只選擇Gradle Build Step,并且把它添加到Build Configuration。點(diǎn)擊Run...后,就可以開始Android構(gòu)建了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 持續(xù)集成【Continuous integration (CI)】是一種開發(fā)實(shí)踐,它要求團(tuán)隊(duì)的開發(fā)人員定期集成他們...
    sollian閱讀 1,683評論 0 0
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,008評論 25 709
  • 用兩張圖告訴你,為什么你的 App 會(huì)卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 13,983評論 2 59
  • 這一章主要針對項(xiàng)目中可以用到的一些實(shí)用功能來介紹Android Gradle,比如如何隱藏我們的證書文件,降低風(fēng)險(xiǎn)...
    acc8226閱讀 7,968評論 3 25
  • 尊敬的王總及何校,親愛的家人們大家好! 我是來自山峰教外教育的張艷玲,今天是我第22天的日精進(jìn),給大家分享...
    張艷玲_cd07閱讀 171評論 0 0

友情鏈接更多精彩內(nèi)容