jenkins 遠(yuǎn)程構(gòu)建Android的過程詳解
由于企業(yè)的需求,需要做一個(gè)網(wǎng)站開分享每個(gè)版本的Android的app,所以需要使用的工具如下:
Jenkins平臺(tái),遠(yuǎn)程編譯環(huán)境服務(wù)器一臺(tái),web服務(wù)器一臺(tái),根據(jù)自己的選擇,可以搭配自己的資源,廢話少說,直奔主題
1. Jenkins的操作
在Jenkins中添加一個(gè)節(jié)點(diǎn),設(shè)置好遠(yuǎn)程的工作目錄,創(chuàng)建好服務(wù)器的標(biāo)簽,然后創(chuàng)建好相關(guān)的環(huán)境鍵值對(duì),比如Android_home,Java_home,Gradle_home等,這些都是比較平常的操作,這里就不羅嗦了,值得注意的有兩點(diǎn):第一,java的路徑問題,由于Jenkins的主機(jī)配置從節(jié)點(diǎn),需要找特點(diǎn)的Java路徑,有時(shí),類似/usr/java/jdk這樣自動(dòng)編譯好的路徑,及時(shí)配置在系統(tǒng)路徑下,也不一定能識(shí)別,這個(gè)需要注意一下,處理方法很簡(jiǎn)單,軟連接就OK了;第二,就是git的問題,如果軟件的管理是使用git的方法,注意你遠(yuǎn)程節(jié)點(diǎn)git的版本,如果比較老舊,那就要下載編譯比較新的版本,依然注意系統(tǒng)的路徑,git-core是重點(diǎn),如果找不到它,你想用git-remote-https的方式去pull遠(yuǎn)程的git倉庫,那注定是失敗,哈哈,網(wǎng)上找找相關(guān)文章,好好查閱一下吧
2. 遠(yuǎn)程編譯服務(wù)器上的操作
下面說重點(diǎn)的東西,就是遠(yuǎn)程編譯服務(wù)器上的相關(guān)設(shè)置,也是本博客的重點(diǎn)
使用的環(huán)境如下:
系統(tǒng):Centos6.5
工具: zlib.i686、glibc.i686、jdk-7u79-linux-x64+(根據(jù)自己項(xiàng)目調(diào)整版本)、android-sdk_r23.3.4-linux 、Gradle2.4+ (Android-studio)
由于比較倉促,我使用root操作的,當(dāng)然創(chuàng)建一個(gè)普通用戶比較好,就是特別注意目錄的操作權(quán)限問題。
由于我已經(jīng)在一個(gè)可以服務(wù)器上更新了sdk,這個(gè)時(shí)間你可以出去旅個(gè)游,然后回來也差不多了(下載更新地址 http://mirrors.opencas.cn/android/repository/)
1.Java環(huán)境的下載
2.Android環(huán)境的下載
3.Android-studio的下載(項(xiàng)目的引導(dǎo)編譯工具gradle在里面)
把上述的這些寫入系統(tǒng)變量,簡(jiǎn)單一下,如果是普通用戶,則在家目錄的環(huán)境配置文件中寫入,我的配置如下:
JAVA_HOME=/usr/java/jdk1.7
JRE_HOME=$JAVA_HOME/jre
ANDROID_HOME=/usr/local/Android/Sdk
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:/usr/local/android-studio/gradle/gradle-2.4/bin:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH ANDROID_HOME
由于android編譯需要32位C編譯包,所以 zlib.i686、glibc.i686在centos上是必備軟件
yum install zlib.i686 glibc.i686 -y,請(qǐng)下載安裝
更新的過程比較繁雜,請(qǐng)耐心等待吧
然后是Jenkins里面的項(xiàng)目配置了,創(chuàng)建一個(gè)新的項(xiàng)目,使用標(biāo)簽,即剛才創(chuàng)建的從節(jié)點(diǎn),一切已經(jīng)配置完成
選擇git的項(xiàng)目地址,添加用戶名密碼認(rèn)證,選擇分支
我這里構(gòu)建的是shell的poll scm(輪詢),每個(gè)小時(shí)一次
構(gòu)建也是使用shell操作,我的配置如下:
cd /home/data/Android/workspace/iWu-Android_check_ticket
rm -rf app/build/output
export JAVA_HOME=/usr/java/jdk1.7/
export ANDROID_HOME=/usr/local/Android/Sdk
/usr/local/android-studio/gradle/gradle-2.4/bin/gradle -PbuildNum=B${BUILD_NUMBER} assembleRelease
增加構(gòu)建后操作
選定你的web服務(wù)器,然后要傳輸?shù)奈募?/p>
app/build/outputs/*.html,app/build/outputs/lint-results_files/*,app/build/outputs/apk/*.apk
放在指定的目錄,注意遠(yuǎn)程文件放置的配置,我這里是
iwu_android_check_ticket/build_${BUILD_NUMBER}(Jenkins里面有很多的變量很好用,自行研究)
執(zhí)行的操作如下:
cd /data/repository/iwu_android_check_ticket/build_${BUILD_NUMBER}
mv app/build/outputs/* .
rm -rf app
這樣每次編譯好放置的文件目錄不會(huì)存放任何文件,避免目錄容量逐漸變大
3. web服務(wù)器的操作
到這里就比較好辦了,隨便來一臺(tái)web服務(wù)器,配置一下項(xiàng)目放置的路徑,注意web里面的一些權(quán)限
以上就是jenkins 遠(yuǎn)程構(gòu)建Android的過程的資料整理,后續(xù)繼續(xù)補(bǔ)充相關(guān)資料,謝謝大家對(duì)本站的支持!
相關(guān)文章
android實(shí)現(xiàn)軟件自動(dòng)更新的步驟
這篇文章主要為大家詳細(xì)介紹了android實(shí)現(xiàn)軟件自動(dòng)更新的步驟,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05
android中Fragment+RadioButton實(shí)現(xiàn)底部導(dǎo)航欄
本篇文章主要介紹了android中Fragment+RadioButton實(shí)現(xiàn)底部導(dǎo)航欄,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03
android內(nèi)存優(yōu)化之圖片優(yōu)化
對(duì)圖片本身進(jìn)行操作。盡量不要使用setImageBitmap、setImageResource、BitmapFactory.decodeResource來設(shè)置一張大圖,因?yàn)檫@些方法在完成decode后,最終都是通過java層的createBitmap來完成的,需要消耗更多內(nèi)存2012-12-12
Android AutoCompleteTextView連接數(shù)據(jù)庫自動(dòng)提示的方法(附demo源碼下載)
這篇文章主要介紹了Android AutoCompleteTextView連接數(shù)據(jù)庫自動(dòng)提示的方法,結(jié)合實(shí)例形式分析了AutoCompleteTextView操作數(shù)據(jù)庫的原理與具體技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2016-02-02
Android根據(jù)包名停止其他應(yīng)用程序的方法
這篇文章主要介紹了Android根據(jù)包名停止其他應(yīng)用程序,需要的朋友可以參考下2020-03-03
Android實(shí)現(xiàn)文件下載進(jìn)度顯示功能
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)文件下載進(jìn)度顯示功能,檢測(cè)Android文件下載進(jìn)度,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-02-02
Jetpack Compose自定義動(dòng)畫與Animatable詳解
在今年的Google/IO大會(huì)上,亮相了一個(gè)全新的 Android 原生 UI 開發(fā)框架-Jetpack Compose, 與蘋果的SwiftIUI一樣,Jetpack Compose是一個(gè)聲明式的UI框架,這篇文章主要介紹了Jetpack Compose自定義動(dòng)畫與Animatable2022-10-10
Android使用ViewPager快速切換Fragment時(shí)卡頓的優(yōu)化方案
今天小編就為大家分享一篇關(guān)于Android使用ViewPager快速切換Fragment時(shí)卡頓的優(yōu)化方案,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-12-12

