以MEET 搭建jenkins編包環境爲例,詳細介紹搭建流程及踩坑經歷。目前jenkins編包依賴JDK環境,gradle打包依賴於android-sdk,所以先搭建基礎支持。
本文所用的linux 環境爲:(命令:lsb_release -a)
lsb_release –a: 查看Linux系統版本
Description: CentOS release 6.3 (Final)
uname –a : 查看內核版本
Linux *** 3.10.0_3-0-0-15 #1 SMP Fri Jan12 18:18:11 CST 2018 x86_64 GNU/Linux
ssh交互端: SecureCRT
一.JDK
手動上傳JDK安裝包,並設置環境變量
1. JDK安裝包獲取方式:本地下載,sz 上傳(java 1.8的版本),下載地址如下:(http://www.oracle.com/technetwork/java/javase/downloads/index.html)
2. 解壓到指定文件夾
3. 針對所有用戶,可在/etc/profile新增環境變量如下
JAVA_HOME=**/jdk1.8.0_171 (這裏請替換成你的完整路徑)
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
JRE_HOME=$JAVA_HOME/jre
exportJAVA_HOME CLASSPATH PATH
如果僅在自己的用戶下面添加,以work賬戶爲例,在/home/work/.bash_profile,按照如上添加就好。
4. source/etc/profile (或者 source /home/work/.bash_profile)使環境變量生效
5. java–verison 驗證是否安裝成功
二.Android-sdk
手動上傳android-sdk包,或線上直接下載,並設置環境變量
1. Android-sdk安裝包獲取方式
a) 本地下載,sz上傳(同Java)
b) 命令獲取
wget http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz
安裝包解壓後需要下載platforms, build-tools 。 此時同樣可使用命令下載及更新,在andriod安裝目錄找到tools,使用android 或sdkmanager命令來進行更新。
獲取服務器上最新的android sdk:android list sdk
列出所有的sdk : android list sdk --all
更新sdk命令:android update sdk (該命令是更新所有的可用的,可使用—filter 更新部分sdk)。 具體例子如:android update sdk --no-ui --filter 1,2 –-all。 其中1,2指的是 list sdk後的編號。
如果直接無法獲取到,可以通過使用國內的android 鏡像,國內的Android代理鏡像服務器:
http://mirrors.neusoft.edu.cn 端口:80
http://ubuntu.buct.edu.cn/端口:80
http://ubuntu.buct.cn/端口:80
http://sdk.gdgshanghai.com端口:8000
IPv6:http://ubuntu.buct6.edu.cn/ 端口:80
使用指定代理更新的方式如下:
android update sdk --no-ui --filter 1 --proxy-hostubuntu.buct.edu.cn --proxy-port 80 -s –all
sdkmanager更新方式具體請自行查詢。
2) 配置環境變量,同樣可配置在/etc/profile中,或者自己工作賬戶目錄的配置文件下,如/home/work/.bash_profile,配置如下:
exportANDROID_HOME=**/android-sdk-linux (請替換成具體的目錄)
exportPATH=$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_HOME/build-tools/25.0.0:$PATH
三.Jenkins
Jenkins目前支持兩種安裝方式,一種是使用yum 直接安裝,一種是結合tomcat 進行安裝。本文使用的是tomcat 的方式,因此,簡略的介紹通過yum 安裝
1) yum 安裝
a) 添加jenkins源
sudowget -O /etc/yum.repos.d/jenkins.repo http://jenkins-ci.org/redhat/jenkins.repo
b) rpm增加jenkins的key
sudo rpm--import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
c) 安裝jenkins
yum install jenkins
d) 使用命令啓動jenkins
sudo service jenkinsstart
在瀏覽器中輸入:http://<服務器ip>:port/ 就可以進入Jenkins界面直接使用了 。其中port爲tomcat服務使用的端口,可自定義。
e) 停止Jenkins服務的命令爲:
sudo service jenkins stop
f) Jenkins相關目錄介紹
安裝目錄:/var/lib/jenkins/
配置文件目錄: /etc/sysconfig/jenkins
日誌目錄:/var/log/Jenkins
可以在配置文件中修改jenkins主目錄(JENKINS_HOME),jenkins用戶(JENKINS_USER),jenkins端口(JENKINS_PORT)等
2) tomcat 安裝
a) 下載jenkins.war包, 下載地址:https://jenkins.io/download/
b) 下載apache-tomcat 並解壓至指定目錄,確保tomcat正常啓動,可以修改tomcat服務端口號
c) 移動jenkins.war 至 **/apache-tomcat-9.0.2/webapps
d) 瀏覽器輸入http://<服務器ip>:port/jenkins/ , 進入jenkins配置頁面
e) 首先進入會提示輸入初始密碼,直接複製指定路徑的初始密碼即可
f) 輸入完成後,會進入插件下載頁面,如果進入正常,則根據需求選擇添加插件的類型,如果不正常,可能出現如下圖所示:
可通過以下方式解決(首先請確保linux 機器可有網絡)
瀏覽器另起一個tab輸入:
http:// <服務器ip>:port/jenkins/ pluginManager/advanced
將升級站點的url替換爲上圖所示,查看該頁頂部
可選插件處是否有插件列表,如果依舊爲空,則可將url 替換爲:
http://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/current/update-center.json
再次查看,勾選相應的插件進行下載,因爲我們採用git來管理工程,所以git相關的插件一定要下載下來。
g) 安裝成功後,創建賬戶,並進入首頁
h) 構建自己的第一個工程,並進行配置,需配置工程名,源碼獲取方式,構建方式等。
工程拉取下來存儲在用戶根目錄的.jenkins/workspace下面。
四.Gradle打包
服務器採用gradlew命令行編包,或者jenkins的gradle插件進行打包,其均需要在jenkins工程的配置頁面進行配置。
本文采用的是gradlew命令行打包。Gradlew是包裝器,自動下載包裝器裏定義好的gradle 版本,保證編譯環境統一,gradle 是用本地的gradle版本。如果服務器上工程很多,每一個工程要求的gradle版本都不一致時,建議使用gradlew命令。
本文使用的命令如下圖所示:
其中flavor 和 buildtype是自己增加的變量,對應的是工程內部build.gradle中不同的取值,具體需按照工程要求配置。-P後面跟的是我們在build.gradle中設置的可變參數,同需要根據自己的需要更改。
由於我們工程採用的buidToolsVersion和targetVersion都是25,編譯過程中會提示
即使用aapt編譯資源文件時,會出現,提示我們25的aapt需要glibc_2.14的支持。
查看linux機器支持的glibc版本:
發現只安裝到2.12,查看libc.so.6鏈接到的glibc版本爲libc-2.12.so
所以需要升級linux系統的glibc版本。(升級有風險,操作需謹慎)
升級步驟如下(一定放在root用戶下進行,首先請進入你需要放置安裝包的路徑):
1. wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz #下載glibc 2.14
2. wget http://ftp.gnu.org/gnu/glibc/glibc-ports-2.14.tar.gz #下載glibc-ports-2.14
3. tar -xvf glibc-2.14.tar.gz
4. tar -xvf glibc-ports-2.14.tar.gz
5. mv glibc-ports-2.14 glibc-2.14/ports
6. mkdir glibc-build-2.14 # 在當前目錄新建build 文件夾
7. cd glibc-build-2.14/ # 進入到該build文件夾
8. ../glibc-2.14/configure --prefix=/usr #設置其安裝目錄
9. make –j4 #以4核進行編譯
10. make install #安裝
11. ll /lib64/libc.so.6 #檢查更新
最終顯示的應該爲:
以上8,9,10任何一步出錯,都可能會導致失敗。第8,9步一定不能有失敗提示,第10步有失敗提示的時候,可以先進性11步的檢查,如果失敗的話,建議多嘗試幾次。
安裝好glibc_2.14後,gradle可正常進行。
五.取包
由於我們的jenkins是安裝在tomcat上的,所以可以直接在tomcat配置中中增加context的靜態目錄配置,以獲取安裝包。具體操作爲,進入tomcat的conf目錄,打開server.xml,在host標籤下增加如下context配置。
其中docBase即我們的安裝包放置的絕對路徑。此時便可通過http://<服務器ip>:port/ 訪問該路徑下的內容。