您好,登錄后才能下訂單哦!
本篇內容主要講解“jenkins怎么構建安卓自動編譯環境”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“jenkins怎么構建安卓自動編譯環境”吧!
gitlab環境之前已經安裝完成可用,具體步驟另外詳解吧。本例目標是在gitlab可用前提下,通過jenkins將git倉庫的代碼自行編譯打包,生成可用的apk安裝文件。
一、相關環境
1 | Linux Centos6.3 2.6.32-279.el6.x86_64 |
各相關軟件版本
1 | JDK 1.8.0 Gradle 2.13 SDK R24 git 2.7.1 jenkin 2.11 |
依賴軟件安裝,
123456 | git安裝,不可用yum直接的git版本,需要重新下載新版,本例用git2.7.1,編譯安裝即可,下載地址 https: //www .kernel.org /pub/software/scm/git/git-2 .7.1. tar .gz 本例中下載的,JDK,SDK,Gradle 都是解壓后,設置環境變量即可用了 其中: JDK 解壓目錄為 /usr/local/java SDK解壓目錄為 /an/android-sdk-linux Gradle目錄為 /an/package/gradle-2 .13 |
編輯.bashrc文件,設置環境變量,設置完成后使用source ~/.bashrc重新加載配置即可,具體設置如下:
1 |
|
1 |
|
1 |
|
1 | #使用java –version android –h gradle –version 三個命令測試安裝是否成功。 |
哈哈哈,這里有一個坑,被我踩了,后面再詳細說。
SDK更新,切換到android目錄,執行tools/android update sdk –no-ui
兩個小時左右,確保磁盤有足夠空間,總大小6G左右
***因為源碼語言指定用 sdk build-tools 22.0.1打包,所以需要另外裝 build-tools的版本,方法如下
1、使用android list sdk –all 查看所有可用的更新包,找到 build-tools22.0.1編碼為8
2、使用android update sdk –no-ui –all –filter 8安裝build包
Note: android list target 查看本地已經安裝的SDK
二、安裝jenkins
12 | 這次使用了jenkins的2.11版,實際上已經有了2.13版,直接到官網下rpm包安裝就好 Jenkins 官網centos系統的下載頁面:http: //pkg .jenkins-ci.org /redhat/ |
三、jenkins的啟動和初始化配置
1 | 啟動:service jenkins start |
1 |
|
1 |
|
使用 http://localhostip:8080即可以訪問jenkins頁面,如果不能訪問,請檢查iptables,本例中將iptables關閉,iptables相關知識請自行腦補
首次登錄,出現的第一個頁面是這樣子的,要通過主機上一個文件來解鎖,這個設計很奇妙
第二個頁面為選擇安裝插件,因后面還有插件需要安裝,這里選默認就好了,等待默認的插件安裝完成。
完成后的主界面是這樣子的
1、jenkins插件安裝
123456 | #系統管理---管理插件---可安裝插件,選中以下插件安裝 Git plugin #必須 Gradle plugin #必須 GitLab Plugin Git client plugin Gitlab Hook Plugin |
2、初始化設置
系統管理 –>全局化設置里增加以下鍵值
l 系統設置Global Tool Configuration
設置jdk、git 和gradle 安裝路徑(此處有坑)
四、新建構建任務
1、選擇構建自由風格的軟件項目
2、源碼管理,選git,若沒有出現 git選項,請回頭重新安裝Git plugin插件,填寫gitlab倉庫地址,增加gitlab倉庫驗證方式,gitlab倉庫驗證有點波折,多嘗試就好
3、構建觸發器
jenkins其實可以和 gitlab 的 hooks結合起來用,有推送就觸發,懶得去研究了,
直接用了SCM排程5分鐘檢查一下,有新更新就打包,也挺好
第一個參數代表的是分鐘 minute,取值 0~59;
第二個參數代表的是小時 hour,取值 0~23;
第三個參數代表的是天 day,取值 1~31;
第四個參數代表的是月 month,取值 1~12;
最后一個參數代表的是星期 week,取值 0~7,0 和 7 都是表示星期天。
如H/5 * * * * 表示的就是每5分鐘檢查一次源碼變化。
4、構建
增加Invoke Gradle script,gradle版本選我們自己增那個,不要用默認
5、構建后
(待研究)
這樣子就可以開始構建了,點擊立即構建,構建完成時顯示藍色就是構建成功,紅色就是構建失敗了
構建完成后的apk文件通常放在倉庫目錄的build/outputs目錄下,其實可以用命令在構建完成后拷出去,這個自行腦補吧
五、jenkins加SDK的各種坑
1、構建時提示
Cannot run program "gradle" (in directory "/var/lib/jenkins/jobs/*****/workspace"): error=2, 沒有那個文件或目錄
網上關于沒有文件和目錄的問題,有各種說法,試了最后都沒有解問題,其實是因為gradle的問題,記得我們第一步在系統設置里面指定了gradle的安裝目錄么,在新建構建任務的時候,在構建那一步,gradle 版本后面的下拉框要選,指定的版本,不能用默認,請往上翻,注意我畫了三個箭頭的那張圖。
2、另外一個坑,提示無訪問權限
我把gradle解壓到了/root目錄下面,jenkins運行時,會使用jenkins的身份運行gradle,就會出現權限不足,無法訪問的情況。
3、Could not init /tmp/hudson1687987969108344361tmp
未安裝 git,或在系統設置里未指定git安裝路徑
4、出現無法連接http 錯誤
12345 | Failed to connect to repository : Command " /usr/local/bin/git -c core.askpass= true ls -remote -h http: // *********************/****r.git HEAD" returned status code 128: stdout: stderr: fatal: Unable to find remote helper for 'http' |
請檢查git版本,刪除centos自帶的 git,編譯安裝2.7以上版本
5、提示java內存溢出
1 | java.lang.OutOfMemoryError: Java heap space |
更改java的內存棧大小:set JAVA_OPTS= -Xms1024m -Xmx1024m
六、所需要依賴到的庫
libstdc++-4.4.7-17.el6.i686
zlib-1.2.3-29.el6.i686
zlib-deve
到此,相信大家對“jenkins怎么構建安卓自動編譯環境”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。