編輯:Android開發環境
由於企業的需求,需要做一個網站開分享每個版本的Android的app,所以需要使用的工具如下:
Jenkins平台,遠程編譯環境服務器一台,web服務器一台,根據自己的選擇,可以搭配自己的資源,廢話少說,直奔主題
1. Jenkins的操作
在Jenkins中添加一個節點,設置好遠程的工作目錄,創建好服務器的標簽,然後創建好相關的環境鍵值對,比如Android_home,Java_home,Gradle_home等,這些都是比較平常的操作,這裡就不羅嗦了,值得注意的有兩點:第一,java的路徑問題,由於Jenkins的主機配置從節點,需要找特點的Java路徑,有時,類似/usr/java/jdk這樣自動編譯好的路徑,及時配置在系統路徑下,也不一定能識別,這個需要注意一下,處理方法很簡單,軟連接就OK了;第二,就是git的問題,如果軟件的管理是使用git的方法,注意你遠程節點git的版本,如果比較老舊,那就要下載編譯比較新的版本,依然注意系統的路徑,git-core是重點,如果找不到它,你想用git-remote-https的方式去pull遠程的git倉庫,那注定是失敗,哈哈,網上找找相關文章,好好查閱一下吧
2. 遠程編譯服務器上的操作
下面說重點的東西,就是遠程編譯服務器上的相關設置,也是本博客的重點
使用的環境如下:
系統:Centos6.5
工具: zlib.i686、glibc.i686、jdk-7u79-linux-x64+(根據自己項目調整版本)、android-sdk_r23.3.4-linux 、Gradle2.4+ (Android-studio)
由於比較倉促,我使用root操作的,當然創建一個普通用戶比較好,就是特別注意目錄的操作權限問題。
由於我已經在一個可以翻牆的服務器上更新了sdk,這個時間你可以出去旅個游,然後回來也差不多了(下載更新地址 http://mirrors.opencas.cn/android/repository/)
1.Java環境的下載
2.Android環境的下載
3.Android-studio的下載(項目的引導編譯工具gradle在裡面)
把上述的這些寫入系統變量,簡單一下,如果是普通用戶,則在家目錄的環境配置文件中寫入,我的配置如下:
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,請下載安裝
更新的過程比較繁雜,請耐心等待吧
然後是Jenkins裡面的項目配置了,創建一個新的項目,使用標簽,即剛才創建的從節點,一切已經配置完成
選擇git的項目地址,添加用戶名密碼認證,選擇分支
我這裡構建的是shell的poll scm(輪詢),每個小時一次
構建也是使用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
增加構建後操作
選定你的web服務器,然後要傳輸的文件
app/build/outputs/*.html,app/build/outputs/lint-results_files/*,app/build/outputs/apk/*.apk
放在指定的目錄,注意遠程文件放置的配置,我這裡是
iwu_android_check_ticket/build_${BUILD_NUMBER}(Jenkins裡面有很多的變量很好用,自行研究)
執行的操作如下:
cd /data/repository/iwu_android_check_ticket/build_${BUILD_NUMBER}
mv app/build/outputs/* .
rm -rf app
這樣每次編譯好放置的文件目錄不會存放任何文件,避免目錄容量逐漸變大
3. web服務器的操作
到這裡就比較好辦了,隨便來一台web服務器,配置一下項目放置的路徑,注意web裡面的一些權限