1. 程式人生 > >Java配置maven+jenkins+git(svn)+tomcat自動編譯和部署(持續整合)

Java配置maven+jenkins+git(svn)+tomcat自動編譯和部署(持續整合)

目的

在開發中,需要經常頻繁的對測試伺服器進行部署,而且在多人協同中開發經常遇到的問題就是別人更新了他的程式碼,而你去更新你的程式碼時並沒有更新到別人的程式碼,導致測試環境的程式碼不是最新,當然這個問題也好解決,那就是每次更新的時候先獲取版本控制器上面的程式碼,然後更新,當然每次這樣操作都是耗時耗力的,如果是整個專案更新,一般專案至少3、40M上傳到伺服器也需要一定的時間,而部分更新,也需要找到指定的檔案或者整個程式碼覆蓋,然後重啟伺服器(Tomcat裡面直接覆蓋class雖然可以配置熱載入,但是容易記憶體溢位),就我工作中的情況而言,是每次都需要先把程式碼上傳到伺服器-解壓-找到Tomcat程序id(

Linux)-kill執行緒-啟動Tomcat,每次下來就需要最少幾分鐘時間,而且每天有可能多次部署,所以對整個工作效率是有一定影響的。正是因為以上種種,所以才有了本文,而本文最終的結果就是一旦程式碼上傳到Git或者svn的時候,程式碼能自動部署到伺服器上面去,這樣我們就只需要吧正確的程式碼提交的版本控制器,就不用理會伺服器的更新了

jenkins部署

Jenkins是一個開源軟體專案,旨在提供一個開放易用的軟體平臺,使軟體的持續整合變成可能 
Jenkins是基於Java開發的一種持續整合工具,用於監控持續重複的工作,功能包括: 
1、持續的軟體版本釋出/測試專案。 
2、監控外部呼叫執行的工作。 
(來自百度百科)

Jenkins能做的東西有很多,不過本文只介紹一個簡單的自動編譯打包部署,首先下載Jenkins,推薦下載war包,下載地址: 
下載主頁

本文是基於war環境部署的,把下載好的war檔案直接放到Tomcat中,然後啟動Tomcat,啟動成功後訪問tomcat的jenkins專案如:

http://localhost:8080/jenkins會看到以下介面jenkins介面
注意紅色框中的紅色文字,那個是初始密碼的路徑,直接根據路徑找到initialAdminPassword檔案並開啟,吧密碼複製出來,輸入到頁面中點選continue按鈕,進入下一步: 
選擇安裝介面
Jenkins擁有很多外掛,一般在開始我們並不清楚需要什麼外掛的時候,可以選擇自定義安裝,把所有基本的外掛全部安裝好,此頁面第一個按鈕是安裝推薦外掛,第二個是自己選擇安裝,這裡我選擇第二個按鈕 


此介面是初始化安裝外掛的介面,先選擇All外掛,然後點選install 
在這個介面需要多等一下,因為是在網上下載外掛,而且是外國的網站,所以經常有下載失敗的情況,最好開啟VPN,當所有外掛安裝完成後會有continue按鈕出現,如果沒有則重新整理一下頁面,當然也可能存在有外掛安裝失敗,根據自己是否需要自行選擇retry或continue,這裡因為我的都已經安裝完成了,所以進入到了下一個頁面 
在此頁面設定使用者名稱和密碼,記得點選save and finish按鈕,如果選擇了Continue as admin,會把使用者名稱重置admin,然後密碼也是你設定的密碼,而是初始化檔案中的密碼,設定完成之後的頁面 

再次點選save and Finish即可

Jenkins主介面 
Jenkins主介面

配置Jenkins

建立專案之前先要對Jenkins進行基本的配置,比如jdk的目錄,git命令的目錄和maven的目錄等等

首先點選系統管理 
點選系統管理 
進入管理頁面後如圖: 
配置管理頁面
點選Global Tool Configuration進入外掛配置頁面

配置jdk

配置jdk
點選新增JDK按鈕,會顯示jdk配置form,如果電腦上已經安裝了jdk則可以去掉自動安裝,不過如果是用Tomcat執行的Jenkins那麼是肯定已經安裝了的,這裡我們只需要配置好jdk別名和JAVA_HOME即可 

配置git

配置git
需要將git.exe的正確路徑配置到Path to Git executable中(注意Linux沒有exe字尾)

配置maven

配置maven
跟jdk相同,配置好名字和路徑即可,當然也可以選擇自動安裝,不過還是推薦手動安裝然後配置,配置好了之後點選save即可

安裝外掛

由於新版預設沒有將war部署到Tomcat的外掛,所以需要手動安裝,在系統管理中選擇管理外掛,再選擇可選外掛,搜尋Deploy to Container Plugin,然後勾選點選直接安裝

建立Jenkins任務

點選開始建立一個新任務進入任務建立頁面 
建立專案頁面
先輸入專案名字,然後選擇構建一個maven專案,最後點選ok按鈕

選擇版本控制器

頁面中找到原始碼管理模組,根據專案使用的版本控制器選擇,如我們使用的git,則選擇git 

選擇構建觸發器

如果是git的話,可以直接通過GitLab(WebHooks)來實現觸發,這樣你每次提交到配置編譯的分支就會git就會通知,不過目前我知道的是git.oschina.NET的鉤子沒有作用,當然如果不是git或者鉤子沒有作用的時候,可以用最簡單的,定時查詢 
這樣是每10分鐘查詢一次,如果有更新就構建,具體Poll SCM的引數可以百度,那裡更加詳細

配置編譯命令

編譯命令我們可以直接配置最簡單的命令編譯 

選擇Execute shell,在出來的介面中配置maven命令就行了,比如

mvn install
  • 1
  • 1
配置部署到Tomcat

點選新增構建後操作,選擇Deploy war/ear to a container,然後配置WAR/EAR files,這個war的地址,一般都target/xxx.war,xxx是war的檔名

然後點選Add Container,新增Tomcat伺服器 

配置好Tomcat的管理員使用者和密碼以及Tomcat的訪問地址就ok了,這樣只要你上傳了程式碼,並且是配置編譯的分支,一般過幾分鐘就會自動編譯然後部署到Tomcat中了,當然最好還是用git,然後通過GitLab實現,這樣不僅不用每隔幾分鐘查詢一次,而且延遲很小