使用Jenkins實現自動化打包

使用Jenkins實現自動化打包
Jenkins個開源的持續集成工具,不只能夠用來進行Android打包,也能夠用來進行iOS打包、NodeJs打包、Java服務打包等。java

The leading open source automation server, Jenkins provides hundreds of plugins to support building, deploying and automating any project.android

Jenkins是使用Java開發的,官方提供一個war包,而且自帶servlet容器,能夠獨立運行也能夠放在Tomcat中運行。固然它也提供了mac等客戶端,能夠直接下載。 
由於通常咱們都是將其部署到服務器上,因此這裏就用下載jenkins.war放到Tomcat的方式來說解。git

安裝Tomcat
去Tomcat官網下載最新的安裝包,安裝完成後啓動tomcat.web

安裝啓動都很簡答,就是下載後解壓,而後打開terminal進入解壓後的目錄下的bin目錄,而後執行startup命令:shell

能夠看到上面我執行./startup.sh時提示權限問題了,這是由於用戶沒有權限致使沒法運行,須要要chmod修改bin目錄下.sh的權限。 
修改完權限後啓動就能夠了,看到提示啓動成功後,咱們能夠在瀏覽器輸入http://localhost:8080,若是能顯示出來可愛的小喵咪,那就說明啓動成功了。瀏覽器

有關tomcat更多的信息就不介紹了,通常在javaweb的學習過程當中都會學到。tomcat

部署Jenkins到Tomcat
去Jenkins官網進行下載,而後選擇意向版本的.war包服務器

把下載後的war包放在本地tomcat目錄下的webapps目錄下。oracle

而後在瀏覽器中訪問http://localhost:8080/jenkins/,若是看到如下界面,表明已經成功部署了.app

啓動完成後會提示輸入一個密碼,上面有路徑,咱們直接進去打開拷貝就能夠了。

按照上面的路徑,進入拷貝.

而後會出現安裝選擇頁面,咱們選擇默認的配置就能夠。 


而後就會出現如下界面,咱們等待安裝就能夠了,這個安裝過程會灰常慢。 咱們也能夠看到他會安裝ant、gradle、git、svn、email等插件。 


等安裝完成後會看到用戶名設置界面。 


好了,大功告成,開始使用後的頁面以下: 


那就開始建立一個項目的項目: 


建立後就會進入到項目設置頁面: 


而後咱們去設置源碼管理,配置好分支和項目地址: 


下面點擊證書後面的add進行添加,而後選擇用用戶名和密碼的登陸方式,輸入用戶名和密碼: 


而後繼續進行設置構建部分,由於android打包須要使用Gradle因此,咱們選擇使用Gradle而後進行配置Gradle: 


而後設置Gradle版本: 


這裏你會發現沒有Gradle版本,這是由於咱們沒有去配置Gradle致使的,由於android打包須要Gradle和JDK因此咱們要先去配置下他倆, 
進入到jenkins首頁選擇系統管理-全局工具配置: 


裏面的jdk和gradle均可以選擇在線安裝,若是jdk使用在線安裝的話須要輸入oracle帳號的的用戶名和密碼。 
配置彎沉恭候,再回到剛纔建立的JenkisDemo項目的配置頁面繼續進行構建配置: 


而後就能夠選擇咱們剛纔新添加的gradle版本了: 


而後再Tasks裏面輸入對應的Task命令就能夠了。

在裏面構建後操做中選擇增長構建後操做步驟,能夠選擇構建完後自動發郵件等。 


到這裏就配置完了,下面直接執行項目裏面的當即構建就能夠自動打包了。 


可是報錯了,咱們點本次構建列表中點入,再點擊控制檯輸出能夠查看詳細的錯誤信息,提示說須要配置SDK,前面只配置了jdk忘了配置sdk了 


打開系統管理-系統設置而後在全局變量-環境變量中增長Android_home配置: 


好了,這樣就能夠了。

可是咱們再打包的時候不單單是想這樣打一個簡單的版本,而是想配置一下參數,來知足一些版本號,渠道等的需求。 
咱們能夠來到項目的設置頁面,選擇參數化構建過程-添加參數-選擇選項參數等進行添加: 


能夠配置APP_VERSION、BUILD_TIME、PRODUCT_FLAVORS、BUILD_TYPE等 


注意這裏配置完成後,還要去在gradle task中去使用才能夠(在命令後面加上配置的參數): 


好了,配置完成後再返回到項目首頁你就會發現以前的當即構建變成了Build with Parameters,點擊它就能夠直接構建了。 


打包完成後能夠自動放到服務器目錄中,經過tomcat提供連接對外下載,也能夠發郵件、生成二維碼等。這裏就不仔細介紹了。 
jenkins可讓咱們更自由的進行配置,操做,也能夠經過shell腳本等進行更加深度的定製,提升了開發中打包的效率。

並且Jenkins還提供了不少靜態代碼分析檢查的插件,能夠直接去集成使用[Static Code Analysis Plug-ins](Static Code Analysis Plug-ins)  

相關文章
相關標籤/搜索