目的
在開發(fā)中料皇,需要經(jīng)常頻繁的對測試服務(wù)器進行部署,而且在多人協(xié)同中開發(fā)經(jīng)常遇到的問題就是別人更新了他的代碼星压,而你去更新你的代碼時并沒有更新到別人的代碼践剂,導(dǎo)致測試環(huán)境的代碼不是最新,當然這個問題也好解決娜膘,那就是每次更新的時候先獲取版本控制器上面的代碼逊脯,然后更新,當然每次這樣操作都是耗時耗力的竣贪,如果是整個項目更新军洼,一般項目至少3巩螃、40M上傳到服務(wù)器也需要一定的時間,而部分更新匕争,也需要找到指定的文件或者整個代碼覆蓋牺六,然后重啟服務(wù)器(Tomcat里面直接覆蓋class雖然可以配置熱加載,但是容易內(nèi)存溢出)汗捡,就我工作中的情況而言淑际,是每次都需要先把代碼上傳到服務(wù)器-解壓-找到Tomcat進程id(Linux)-kill線程-啟動Tomcat,每次下來就需要最少幾分鐘時間扇住,而且每天有可能多次部署春缕,所以對整個工作效率是有一定影響的。正是因為以上種種艘蹋,所以才有了本文锄贼,而本文最終的結(jié)果就是一旦代碼上傳到git或者svn的時候,代碼能自動部署到服務(wù)器上面去女阀,這樣我們就只需要吧正確的代碼提交的版本控制器宅荤,就不用理會服務(wù)器的更新了
jenkins部署
Jenkins是一個開源軟件項目,旨在提供一個開放易用的軟件平臺浸策,使軟件的持續(xù)集成變成可能
Jenkins是基于Java開發(fā)的一種持續(xù)集成工具冯键,用于監(jiān)控持續(xù)重復(fù)的工作,功能包括:
1庸汗、持續(xù)的軟件版本發(fā)布/測試項目惫确。
2、監(jiān)控外部調(diào)用執(zhí)行的工作蚯舱。
(來自百度百科)
Jenkins能做的東西有很多改化,不過本文只介紹一個簡單的自動編譯打包部署,首先下載Jenkins枉昏,推薦下載war包陈肛,下載地址:
下載主頁
本文是基于war環(huán)境部署的,把下載好的war文件直接放到Tomcat中兄裂,然后啟動Tomcat句旱,啟動成功后訪問tomcat的jenkins項目如:
http://localhost:8080/jenkins會看到以下界面
注意紅色框中的紅色文字,那個是初始密碼的路徑懦窘,直接根據(jù)路徑找到initialAdminPassword文件并打開前翎,吧密碼復(fù)制出來稚配,輸入到頁面中點擊continue按鈕畅涂,進入下一步:
Jenkins擁有很多插件,一般在開始我們并不清楚需要什么插件的時候道川,可以選擇自定義安裝午衰,把所有基本的插件全部安裝好立宜,此頁面第一個按鈕是安裝推薦插件,第二個是自己選擇安裝臊岸,這里我選擇第二個按鈕
此界面是初始化安裝插件的界面橙数,先選擇All插件,然后點擊install
再次點擊save and Finish即可
Jenkins主界面
配置Jenkins
創(chuàng)建項目之前先要對Jenkins進行基本的配置顶霞,比如jdk的目錄,git命令的目錄和maven的目錄等等
首先點擊系統(tǒng)管理
進入管理頁面后如圖:
點擊Global Tool Configuration進入插件配置頁面
配置jdk
點擊新增JDK按鈕锣吼,會顯示jdk配置form选浑,如果電腦上已經(jīng)安裝了jdk則可以去掉自動安裝,不過如果是用Tomcat運行的Jenkins那么是肯定已經(jīng)安裝了的玄叠,這里我們只需要配置好jdk別名和JAVA_HOME即可
配置git
需要將git.exe的正確路徑配置到Path to Git executable中(注意Linux沒有exe后綴)
配置maven
跟jdk相同古徒,配置好名字和路徑即可,當然也可以選擇自動安裝读恃,不過還是推薦手動安裝然后配置隧膘,配置好了之后點擊save即可
安裝插件
由于新版默認沒有將war部署到Tomcat的插件,所以需要手動安裝寺惫,在系統(tǒng)管理中選擇管理插件疹吃,再選擇可選插件,搜索Deploy to container Plugin西雀,然后勾選點擊直接安裝
創(chuàng)建Jenkins任務(wù)
點擊開始創(chuàng)建一個新任務(wù)進入任務(wù)創(chuàng)建頁面
先輸入項目名字萨驶,然后選擇構(gòu)建一個maven項目,最后點擊ok按鈕
選擇版本控制器
頁面中找到源碼管理模塊艇肴,根據(jù)項目使用的版本控制器選擇腔呜,如我們使用的git叁温,則選擇git
選擇構(gòu)建觸發(fā)器
如果是git的話,可以直接通過GitLab(WebHooks)來實現(xiàn)觸發(fā)核畴,這樣你每次提交到配置編譯的分支就會git就會通知膝但,不過目前我知道的是git.oschina.net的鉤子沒有作用,當然如果不是git或者鉤子沒有作用的時候谤草,可以用最簡單的跟束,定時查詢
這樣是每10分鐘查詢一次,如果有更新就構(gòu)建丑孩,具體Poll SCM的參數(shù)可以百度泳炉,那里更加詳細
配置編譯命令
編譯命令我們可以直接配置最簡單的命令編譯
選擇Execute shell,在出來的界面中配置maven命令就行了嚎杨,比如
mvn install
配置部署到Tomcat
點擊新增構(gòu)建后操作花鹅,選擇Deploy war/ear to a container,然后配置WAR/EAR files枫浙,這個war的地址刨肃,一般都target/xxx.war,xxx是war的文件名
然后點擊Add Container箩帚,添加Tomcat服務(wù)器
配置好Tomcat的管理員用戶和密碼以及Tomcat的訪問地址就ok了真友,這樣只要你上傳了代碼,并且是配置編譯的分支紧帕,一般過幾分鐘就會自動編譯然后部署到Tomcat中了盔然,當然最好還是用git,然后通過GitLab實現(xiàn),這樣不僅不用每隔幾分鐘查詢一次是嗜,而且延遲很小