使用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)