1. 程式人生 > >Jenkins+Gradle+Git+Centos 實現android持續整合、打包(超詳細)

Jenkins+Gradle+Git+Centos 實現android持續整合、打包(超詳細)

這回分享下使用jenkins+gradle給android打包,伺服器環境是centos7.1

首先,對於新伺服器,你可能需要依次安裝jdk 、android sdk 、gradle、jenkins

一、安裝jdk

1、從官方網站下載最新jdk 

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

如圖,選擇最新版本進行下載,根據你伺服器選擇64位或32位版本進行下載。


2、解壓後放入合適目錄,一般企業開發會分給你一個固定目錄進行安裝軟體,如/opt/app

解壓命令:tar -zxvf jdk-xxxx.tar.gz

3、配置環境變數

執行: vi /etc/profile ,  輸入以下配置,其中jdk版本根據實際版本進行寫入。

#set java environment

JAVA_HOME=/opt/app/jdk1.8.0_111

JRE_HOME=/opt/app/jdk1.8.0_111/jre

CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

export JAVA_HOME JRE_HOME CLASS_PATH PATH

然後執行 source /etc/profile更新

二、安裝android sdk

1、從官方網站下載命令列工具最新版 https://developer.android.com/studio/index.html


同樣,解壓到/opt/app,到sdk的tools目錄下執行更新命令:

./android update sdk -u -t add-on,extra,platform,platform-tool,tool

2、配置sdk的環境變數

開啟/etc/profile 檔案,寫入:

export ANDROID_SDK_HOME=/opt/app/android-sdk-linux

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

執行更新 source /etc/profile

三、安裝gradle

開啟網址 https://gradle.org/gradle-download/,選擇你專案編譯所需要的版本,如我選擇的是2.14.1

解壓至 /opt/app, 然後配置環境變數:

export GRADLE_HOME=/opt/app/gradle-2.14.1

export PATH=$GRADLE_HOME/bin:$PATH

執行更新 source /etc/profile

四、安裝jenkins

在官方網站 https://pkg.jenkins.io/redhat-stable/ 下載安裝包 ,如jenkins-2.19.4-1.1.noarch.rpm

執行安裝: yum install jenkins-2.19.4-1.1.noarch.rpm

成功安裝後,啟動jenkins: service jenkins start

輸入網址http://xxx.xxx.xxx.xxx:8080/  可以開啟jenkins配置頁面, 預設是8080埠,可以修改

 執行:vi /etc/sysconfig/jenkins

 修改  JENKINS_PORT="8090"

執行命令重新啟動: service jenkins restart

注意: 如果修改埠後啟動不了,記得把防火牆埠開啟,或者直接關閉防火牆

五、配置jenkins job

首次進入jenkins,會提醒你安裝外掛,就安裝推薦的即可。但是會由於網路的緣故有些外掛安裝不上,你也可以離線安裝需要的外掛,至少git、gradle的外掛需要安裝。

如果一直提示你安裝外掛,而一直進入不到首頁,可以開啟這個頁面http://192.168.20.31:8080/restart


如圖點選“管理外掛”彈出如下頁面,大部分外掛可線上安裝,可以在可選外掛中選中需要的外掛點選安裝


有些地區點選“可選外掛”不能顯示任何東西,是因為網路的緣故,你可以選擇‘“高階”->"升級站點",替換下url (http://mirror.xmission.com/jenkins/updates/update-center.json),如果還是線上安裝不了外掛,也可以離線進行安裝,下載好外掛後,選擇外掛上傳。


安裝好必要的外掛之後,在jenkins中配置jdk,git,gradle


如圖配置好,接下來可以新建一個job

輸入job名字,選擇“構建一個自由風格的軟體專案”


接下來給這個job配置引數,根據需要選擇choice 或者String引數


填入引數



注意:VERSION引數同時也需要在你的專案裡使用同樣的引數,這樣才可以在構建時手動輸入版本號設定生效。


配置git原始碼地址


其中Credentials項是配置好的SSH祕鑰名字,  首先在伺服器中生成公私鑰對,在終端輸入如下命令:

ssh-keygen -t rsa -C "[email protected]"

檢視公鑰:cat ~/.ssh/id_rsa.pub

檢視私鑰:cat ~/.ssh/id_rsa

然後在jenkins中作如下配置,目錄如圖


username: 手工輸入名字,隨便填

private key:ssh私鑰(注意不是公鑰)

passphrase:金鑰的密碼,即生成金鑰時設定的密碼,沒有就不要填。

ID、Description無需填。

移步你的gitlab,在SSH key中填入你伺服器中的公鑰


這樣你的伺服器就可以訪問gitlab了。

在“增加構建步驟”中選擇“invoke Gradle script”


配置構建任務,注意圖中紅框要選中,不然配置的引數不會生效。


點選儲存,這個JOB配置完畢。

返回首頁,點選剛剛配置的job->Build with Parameters,最終效果如下,點選“開始構建”即可開始編譯專案,生成的apk在目錄“工作空間”裡可以找到。

相關推薦

Jenkins+Gradle+Git+Centos 實現android持續整合打包詳細

這回分享下使用jenkins+gradle給android打包,伺服器環境是centos7.1 首先,對於新伺服器,你可能需要依次安裝jdk 、android sdk 、gradle、jenkins 一、安裝jdk 1、從官方網站下載最新jdk  http://w

Spectrum持續整合專案打包Travis-CI

Travis-CI what Travis CI 是目前新興的開源持續整合構建專案(Continuous Integration,簡稱 CI),它與jenkins,GO的很明顯的特別在於採用yaml格式,簡潔清新獨樹一幟。目前大多數的github專案都已經移入到

Nginx+Tomcat實現不同專案域名對映配置詳細

1.域名:先解析一個域名對應固定伺服器IP,例域名:www.csdnTest.com對映伺服器IP:116.110.78.1202.本機主機:在伺服器(116.110.78.120)上編輯本機主機配置檔案,命令:vi  /etc/hosts,在"127.0.0.1 local

學習jenkins+git+gradle實現Android持續整合心得總結

今天有空學習了下jenkins在Android上的應用,一下午的時間,最終看到了讓人激動的畫面 下面說正題,總結了下步驟如下: 1、下載jenkins的war包,安裝,啟動。 2、登入jenkins,安裝外掛 3、配置系統配置 4、建立任務 5、構建任務 6、拿到ap

jenkins+docker+git+springboot實現持續自動化部署

本篇文章引導你使用Jenkins部署SpringBoot專案,同時使用Docker和Git實現簡單的持續整合和持續部署。(專案地址:first-app-demo)流程圖如下:push程式碼到Github觸發WebHook。(因網路原因,本篇使用gitee)Jenkins從倉庫

Jenkins持續整合環境部署入門篇

為什麼要持續整合 持續整合是一種軟體開發實踐,即團隊開發成員經常整合它們的工作,通過每個成員每天至少整合一次,也就意味著每天可能會發生多次整合。每次整合都通過自動化的構建(包括編譯,釋出,自動化測試)來驗證,從而儘早地發現整合錯誤。 價值: 1、減少風險

jenkins+Gitlab+maven+tomcat實現自動化集成打包部署。

linux 編譯 oracle system group org 51cto check soft 為什麽需要持續集成呢? 1.因為在開發的過程中,用於階段性地構建出產品。這樣可以更加清楚地審視產品的不足之處。2.由於在某些情況下,例如有緊急bug的時候,研發的版本更新可能

git 如何實現進行多人協作開發遠端倉庫

第一、Git作為分散式的版本控制系統,你是你本地倉庫的主人,但是想要實現多人的協作開發,你就要將你本地的開發推送到遠端共享倉庫中供大家下載,本篇主要以github作為遠端伺服器來介紹有關遠端倉庫這塊內容。 作為我們的伺服器,並不能讓任何人向我們的git伺服器上推送程式碼,只

Android Studio下Git的兩種使用方法詳細

提了好久的筆,終於開始寫部落格了。 今天要說的是版本控制工具,作為個人開發者,我一般使用的就是gitoso(碼雲)管理程式碼,因為可以建立私人(不公開)的專案。今天我就來講一講AndroidStudio下git的使用。 首先,要下載Git。Git官網下載

框架整合——SpringMVC與MyBatis整合詳細

SpringMVC與MyBatis是我們現在最流行的開發框架組合之一,這裡我來整理一下框架的整合搭建過程 前言 使用IDE:IntelliJ IDEA JDK:1.8 開啟IDEA,新建maven工程 第一步:開啟IDEA,點選Create New Pro

簡單選擇排序演算法原理及java實現詳細

選擇排序是一種非常簡單的排序演算法,就是在序列中依次選擇最大(或者最小)的數,並將其放到待排序的數列的起始位置。 簡單選擇排序的原理 簡單選擇排序的原理非常簡單,即在待排序的數列中尋找最大(或者最小)的一個數,與第 1 個元素進行交換,接著在剩餘的待排序的數列中繼續找最大(最小)的一個數,與第 2 個元素交

在Linux上部署使用kettle實現資料的時間戳增量同步詳細

之前公司的資料同步都是在windows平臺上做的,同事告訴我用windows做資料同步的問題在於他的電腦不能關機,並且spoon必須一直保持開啟狀態,但他的kettle總會自己莫名掉線。於是,把資料同步這項工作從windows轉移到linux上是不可避免的也是必須的。我實現的

氣泡排序演算法原理及實現詳細

氣泡排序(Bubble Sort)是排序演算法裡面比較簡單的一個排序。它重複地走訪要排序的數列,一次比較兩個資料元素,如果順序不對則進行交換,並一直重複這樣的走訪操作,直到沒有要交換的資料元素為止。 氣泡排序的原理 為了更深入地理解氣泡排序的操作步驟,我們現在看一下氣泡排序的原理。 首先我們肯定有一個數組

一步一步帶你完成支付寶支付功能的整合詳細

首先說說筆者的整合經歷,一開始整合時,像往常一樣百度了一下整合的方法,然後出來一大堆結果,以為應該會很簡單,然而事實卻並非如此。網上的整合方法很多都是舊版本的整合,現在支付寶已經對sdk以及demo進行了更新,雖說和舊版差別不是很大,不過對於不瞭解整個流程的開發

資料結構與演算法:企業級連結串列實現詳細

企業級連結串列介紹 如果我們使用原始的C語言寫連結串列的話,資料型別是被固定死的,如果業務換了 需要另一種資料型別,我們又得重新在寫一個連結串列,當然我們可以使用void* 萬能指標,因為void* 可以接受任意型別的指標,那麼我們就可以接受任意型別的資料的地址了,我們只需

使用 Android Studio 寫出第一個 NDK 程式詳細

    NDK(Native Development Kit),是用於在 Android 應用中巢狀原生代碼的工具集,現在 Android 開發最常用的工具就是 Android Studio 了,筆者也是剛剛接觸 NDK 開發,用了一天的時間,踩了很多坑,最終跑通了自己的第一

Android Studio匯入SlidingMenu的兩種方法詳細

方法1 匯入aar 順道解析一下在Android studio中,有兩種方式:  一種是jar包,一種是帶資原始檔的aar包。 jar: 只包含了class檔案與清單檔案 ,不包含資原始檔,如圖片等所有res中的檔案。 aar: 包含jar包和資原始檔,如圖片等所

Springboot整合MybatisPlus詳細完整教程~

## 新建springboot專案 開發工具:idea2019.2,maven3 ![](http://img.liuyj.top/springboot整合mybatispluss.jpg) ![](http://img.liuyj.top/springboot整合mybatisplus-1.jpg) ##

詳細動手編寫-連結串列Java實現

[TOC] ## 前言 在前面的實現的動手寫個Java動態數組裡,雖然對於使用者而言,看是實現了動態擴容的功能,實際上,只是依託底層寫的方法`ensureCapacity`在陣列容量不足的時候,對重新申請一個原陣列1.5倍容量的新陣列,再將原有陣列中存放的元素複製到新陣列來,陣列指標指向新陣列,從根本上來說

詳細動手編寫 — 棧佇列 ( Java實現 )

[TOC] # 前言 ## 棧 ### 概念 **什麼是棧?** **棧 **:是一種特殊的線性表,只能在一端進行操作 **入棧**:往棧中新增元素的操作,一般叫做push **出棧**:從棧中移除元素的操作,一般叫做pop,出棧(彈出棧頂元素) **注意**:這裡說的"棧"與記憶體中的"棧空間