溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

jenkins怎么構(gòu)建安卓自動(dòng)編譯環(huán)境

發(fā)布時(shí)間:2021-08-15 22:25:07 來源:億速云 閱讀:230 作者:chen 欄目:移動(dòng)開發(fā)

本篇內(nèi)容主要講解“jenkins怎么構(gòu)建安卓自動(dòng)編譯環(huán)境”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“jenkins怎么構(gòu)建安卓自動(dòng)編譯環(huán)境”吧!

   gitlab環(huán)境之前已經(jīng)安裝完成可用,具體步驟另外詳解吧。本例目標(biāo)是在gitlab可用前提下,通過jenkins將git倉庫的代碼自行編譯打包,生成可用的apk安裝文件。

 一、相關(guān)環(huán)境

1Linux Centos6.3 2.6.32-279.el6.x86_64

 各相關(guān)軟件版本

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 都是解壓后,設(shè)置環(huán)境變量即可用了   其中: JDK 解壓目錄為/usr/local/java       SDK解壓目錄為/an/android-sdk-linux       Gradle目錄為/an/package/gradle-2.13

    編輯.bashrc文件,設(shè)置環(huán)境變量,設(shè)置完成后使用source ~/.bashrc重新加載配置即可,具體設(shè)置如下:

1

#JDK環(huán)境變量        export JAVA_HOME=/usr/local/java       

                   export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH        export PATH=$JAVA_HOME/bin: $PATH

1

#SDK環(huán)境變量        export ANDROID_HOME=/an/android-sdk-linux

                    export PATH=$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools:$PATH

1

#gradle環(huán)境變量     export GRADLE_HOME=/an/package/gradle-2.13       

                   export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:${GRADLE_HOME}/bin:${JAVA_HOME}:${PATH}

1#使用java –version  android –h   gradle –version 三個(gè)命令測(cè)試安裝是否成功。

   哈哈哈,這里有一個(gè)坑,被我踩了,后面再詳細(xì)說。 

   SDK更新,切換到android目錄,執(zhí)行tools/android update sdk –no-ui

   兩個(gè)小時(shí)左右,確保磁盤有足夠空間,總大小6G左右 

***因?yàn)樵创a語言指定用 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   查看本地已經(jīng)安裝的SDK 

二、安裝jenkins    

12  這次使用了jenkins的2.11版,實(shí)際上已經(jīng)有了2.13版,直接到官網(wǎng)下rpm包安裝就好  Jenkins 官網(wǎng)centos系統(tǒng)的下載頁面:http://pkg.jenkins-ci.org/redhat/

三、jenkins的啟動(dòng)和初始化配置     

1啟動(dòng):service jenkins start
1

 #**運(yùn)行出錯(cuò),出現(xiàn)如下提示*

*Starting Jenkins Jenkins requires Java7 or later, 

but you are running 1.6.0_24-b24 from /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre     

#在/etc/init.d目錄下,編輯jenkins文件,

將java的目標(biāo)地址/usr/lib/****改為實(shí)際安裝的地址就可以了

1

使用netsta 可以查看到,8080端口已被監(jiān)聽,

[root@Centos6 init.d]

netstat -apn | grep 8080 tcp   0   0 :::8080   :::*     LISTEN

使用 http://localhostip:8080即可以訪問jenkins頁面,如果不能訪問,請(qǐng)檢查iptables,本例中將iptables關(guān)閉,iptables相關(guān)知識(shí)請(qǐng)自行腦補(bǔ)
首次登錄,出現(xiàn)的第一個(gè)頁面是這樣子的,要通過主機(jī)上一個(gè)文件來解鎖,這個(gè)設(shè)計(jì)很奇妙

jenkins怎么構(gòu)建安卓自動(dòng)編譯環(huán)境

第二個(gè)頁面為選擇安裝插件,因后面還有插件需要安裝,這里選默認(rèn)就好了,等待默認(rèn)的插件安裝完成。

完成后的主界面是這樣子的

jenkins怎么構(gòu)建安卓自動(dòng)編譯環(huán)境
1、jenkins插件安裝

123456#系統(tǒng)管理---管理插件---可安裝插件,選中以下插件安裝     Git plugin      #必須     Gradle plugin   #必須      GitLab Plugin     Git client plugin     Gitlab Hook Plugin

2、初始化設(shè)置

  • 系統(tǒng)管理 –>全局化設(shè)置里增加以下鍵值

jenkins怎么構(gòu)建安卓自動(dòng)編譯環(huán)境

l  系統(tǒng)設(shè)置Global Tool Configuration

設(shè)置jdk、git 和gradle 安裝路徑(此處有坑)

jenkins怎么構(gòu)建安卓自動(dòng)編譯環(huán)境

四、新建構(gòu)建任務(wù)

   1、選擇構(gòu)建自由風(fēng)格的軟件項(xiàng)目

jenkins怎么構(gòu)建安卓自動(dòng)編譯環(huán)境

   2、源碼管理,選git,若沒有出現(xiàn) git選項(xiàng),請(qǐng)回頭重新安裝Git plugin插件,填寫gitlab倉庫地址,增加gitlab倉庫驗(yàn)證方式,gitlab倉庫驗(yàn)證有點(diǎn)波折,多嘗試就好

   3、構(gòu)建觸發(fā)器

jenkins其實(shí)可以和 gitlab 的 hooks結(jié)合起來用,有推送就觸發(fā),懶得去研究了,

直接用了SCM排程5分鐘檢查一下,有新更新就打包,也挺好

jenkins怎么構(gòu)建安卓自動(dòng)編譯環(huán)境

第一個(gè)參數(shù)代表的是分鐘 minute,取值 0~59;

第二個(gè)參數(shù)代表的是小時(shí) hour,取值 0~23;

第三個(gè)參數(shù)代表的是天 day,取值 1~31;

第四個(gè)參數(shù)代表的是月 month,取值 1~12;

最后一個(gè)參數(shù)代表的是星期 week,取值 0~7,0 和 7 都是表示星期天。

如H/5 * * * * 表示的就是每5分鐘檢查一次源碼變化。 

  4、構(gòu)建

增加Invoke Gradle script,gradle版本選我們自己增那個(gè),不要用默認(rèn)

jenkins怎么構(gòu)建安卓自動(dòng)編譯環(huán)境 

    5、構(gòu)建后

     (待研究)

  這樣子就可以開始構(gòu)建了,點(diǎn)擊立即構(gòu)建,構(gòu)建完成時(shí)顯示藍(lán)色就是構(gòu)建成功,紅色就是構(gòu)建失敗了

 構(gòu)建完成后的apk文件通常放在倉庫目錄的build/outputs目錄下,其實(shí)可以用命令在構(gòu)建完成后拷出去,這個(gè)自行腦補(bǔ)吧

五、jenkins加SDK的各種坑

1、構(gòu)建時(shí)提示

Cannot run program "gradle" (in directory "/var/lib/jenkins/jobs/*****/workspace"): error=2, 沒有那個(gè)文件或目錄

網(wǎng)上關(guān)于沒有文件和目錄的問題,有各種說法,試了最后都沒有解問題,其實(shí)是因?yàn)間radle的問題,記得我們第一步在系統(tǒng)設(shè)置里面指定了gradle的安裝目錄么,在新建構(gòu)建任務(wù)的時(shí)候,在構(gòu)建那一步,gradle 版本后面的下拉框要選,指定的版本,不能用默認(rèn),請(qǐng)往上翻,注意我畫了三個(gè)箭頭的那張圖。

2、另外一個(gè)坑,提示無訪問權(quán)限

   我把gradle解壓到了/root目錄下面,jenkins運(yùn)行時(shí),會(huì)使用jenkins的身份運(yùn)行g(shù)radle,就會(huì)出現(xiàn)權(quán)限不足,無法訪問的情況。

3、Could not init /tmp/hudson1687987969108344361tmp

   未安裝 git,或在系統(tǒng)設(shè)置里未指定git安裝路徑

4、出現(xiàn)無法連接http 錯(cuò)誤

12345Failed 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'

請(qǐng)檢查git版本,刪除centos自帶的 git,編譯安裝2.7以上版本

5、提示java內(nèi)存溢出

1java.lang.OutOfMemoryError: Java heap space

 更改java的內(nèi)存棧大?。簊et JAVA_OPTS= -Xms1024m -Xmx1024m

六、所需要依賴到的庫

libstdc++-4.4.7-17.el6.i686

zlib-1.2.3-29.el6.i686

zlib-deve

到此,相信大家對(duì)“jenkins怎么構(gòu)建安卓自動(dòng)編譯環(huán)境”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI