Jenkins+SVN+Maven自動化部署環境搭建

前言

因今年公司新產品線較多,爲了下降耦合,達到業務分離、重用,提升內部開發效率的目的,採用了基於服務組件、先後端分離的架構體系。與以前傳統單應用架構相比,系統部署、配置更加複雜,爲了可以頻繁地將軟件的最新版本,及時、持續地交付給測試團隊及質量控制團隊,以供評審,因此引入持續集成工具Jenkins,從而實現公司新產品持續集成,自動化部署。html

環境準備

  • 操做系統:Windows10
  • Java環境:下載 jdk-1.8.0-131-X64.zip,配置Java環境變量(參考:http://jingyan.baidu.com/article/02027811629b941bcc9ce521.html)
  • Maven環境:下載apache-maven-3.5.2-bin.zip,配置Maven環境變量(參考:http://wiki.jikexueyuan.com/project/maven/environment-setup.html)
  • Tomcat環境:下載apache-tomcat-8.5.20-windows-x64.zip,配置Tomcat環境變量(參考:http://jingyan.baidu.com/article/8065f87fcc0f182330249841.html)
  • Jenkins環境:下載Jenkins2.73.2 for Windows

安裝Jenkins

  1. 運行下載好的Jenkins安裝包jenkins.msi,選擇安裝路徑,點擊」安裝「,等待安裝完成;web

    11

  2. 安裝完成之後,會自動啓動瀏覽器,跳轉到Jenkins登陸頁面。第一次啓動Jenkins,出於安全考慮,Jenkins會生產一個隨機口令文件,表單中會給出管理員口令文件存放的位置,經過Windows+R,調出運行窗口,將存放口令的文件路徑粘貼到輸入框,點擊回車,快速打開文件,將文件中的口令輸入到表單中,點「Continue」繼續;shell

    22

  3. 安裝Jenkins官方建議的默認插件;apache

    33

  4. 建立第一個管理員用戶,建立完成之後,就能夠用這個用戶登陸到Jenkins系統中。windows

44

安裝插件

下面介紹實際部署中所用到的幾個插件,安裝方法:系統管理->管理插件。後端

  • 安裝Deploy to container Plugin(自動化部署插件)
  • 安裝Maven Integration Plugin(Maven集成插件)
  • 安裝Publish Over SSH Plugin(SSH遠程發佈插件)

注意:因插件安裝之後,須要重啓Jenkins纔可以使用。因此在安裝插件時,能夠勾選安裝完成後重啓Jenkins。若是不當心忘記勾選,也沒有關係,能夠在瀏覽器網址端口後面輸入/restart來重啓Jenkins,其它的命令,可參考系統管理->Jenkins CLI。瀏覽器

系統配置

插件安裝完成之後,咱們須要對系統進行配置。tomcat

  1. 首先進行全局配置,系統管理->系統設置:

Jenkins Location配置

Jenkins URL項保持默認便可,填寫系統管理員郵件地址。(注意:這個若是不填寫的是發送不了郵件的,測試郵件發送時會報:「553 Mail from must equal authorized user」錯誤。)安全

55

郵件通知配置

填寫「SMTP服務器」、「用戶默認郵件後綴」,而後點「高級」,勾選「使用SMTP認證」,填寫郵箱用戶名、密碼和SMTP端口,接着勾選「經過發送測試郵件測試配置」,填寫接收郵件的郵箱,點擊「測試」,出現「Email was successfully sent」代表郵件通知配置成功。服務器

66

SSH remote hosts配置

SSH遠程主機配置,主要用來經過SSH方式遠程發佈,在後面的章節會詳細介紹。

88

Publish over SSH配置

主要是用來經過SSH方式遠程發佈,在後面的章節會詳細介紹。

99

  1. 而後,進入系統設置->Global Tool Configuration:

SonarQube servers配置

10

Maven配置

配置Maven主要是配置Maven的settings.xml文件,Jenkins在構建Maven項目時須要依靠該配置文件來執行Maven,其配置以下:

11

JDK配置

12

SonarQube Scanner配置

13

新建項目

新建一個Maven項目

14

項目配置

源碼管理

15

構建觸發器

Jenkins提供了6中構建觸發器,分別是:

  1. build whenever a snapshot dependency is built ,當job依賴的快照版本被build時,執行本job;
  2. 觸發遠程構建 (例如,使用腳本);
  3. build after other projects are built 當本job依賴的job被build時,執行本job;
  4. build periodically 隔一段時間build一次,無論版本庫代碼是否發生變化,一般不會採用此種方式;
  5. GitHub hook trigger for GITScm polling 經過Github鉤子觸發;
  6. poll scm 隔一段時間比較一次源代碼,若是發生變動,那麼久build。不然,不進行build,一般採用這種方式。

16

構建(Build)

調用Maven 「clean install」命令。

17

增長一個構建後步驟(自動部署)

因在Windows環境下部署,因此選擇Execute Windows batch command。

自動部署的思路:設置全局變量(項目名稱,構建新包路徑,配置文件路徑,Tomcat路徑等)->關閉Tomcat->刪除Tomcat中舊版本包->拷貝新包到Tomcat應用目錄->啓動Tomcat(解壓包)->關閉Tomcat->替換配置文件->刪除War包->啓動Tomcat,本身寫的腳本代碼以下:

@echo off

rem 設置全局變量
set prj_name=estate
set package_path=D:\AutoDeployment\Package
set config_path=D:\AutoDeployment\config
set command_path=D:\AutoDeployment\command
set tomcat_home=D:\tomcat\apache-tomcat-7.0.59

set startup_command=%tomcat_home%\bin\startup.bat
set shutdown_command=%tomcat_home%\bin\shutdown.bat

rem 關閉tomcat
call %shutdown_command%

rem 暫停10s
ping -n 10 127.0.0.1

rem 刪除舊包目錄
rd /s /q %tomcat_home%\webapps\%prj_name%

rem 新包重命名
d:
cd D:\AutoDeployment\Package\estate
ren register-web.war %prj_name%.war

rem 拷貝新包到發佈目錄
copy %prj_name%.war %tomcat_home%\webapps

rem 啓動tomcat

call %startup_command%

rem 暫停10s
ping -n 10 127.0.0.1

rem 關閉tomcat
call %shutdown_command%

rem 刪除war包
rd /s /q %tomcat_home%\webapps\%prj_name%.war

rem 替換配置文件
copy %config_path%\%prj_name% %tomcat_home%\webapps\%prj_name%\WEB-INF\classes

rem 啓動tomcat
call %startup_command%

rem 關閉窗口
exit

構建設置(郵件通知)

19

構建測試

點擊「當即」構建,maven 打包成功,執行腳本無誤之後,整個自動化部署就成功了。

結語

按照以上步驟,能夠成功完成自動化部署環境搭建。網上不少教程,在「構建後步驟」這一步直接貼出Execute shell,且未說明是在什麼操做系統環境下,注意直接拿來用在Windows環境下面是不行的。Jenkins軟件幫助功能作的很是強大,在每一項配置後面,都會有一個幫助菜單,因此當你不肯定該項如何填寫時,這個菜單是最好的參考工具。後面我將會繼續介紹經過SSH遠程發佈以及Jenkins與SonarQube(開源代碼質量管理系統)集成,歡迎一塊兒交流學習。

相關文章
相關標籤/搜索