這兩天學習了一下持久化集成工具Jenkins,在本身的本地搭建一個簡單的Jenkins環境。html
使用環境:Windows64系統,JDK1.8,eclipse,svn(Windows版本VisualSVN-Server-3.5.7-x64.msi),tomcat7,apache-maven-3.2.5,Jenkins_2.32.1等。java
注:Jenkins2.32須要JDK7及以上版本;web
1、持續集成數據庫
先了解一下持續集成的概念:持續集成是一種軟件開發實踐,即團隊開發成員常常集成它們的工做,經過每一個成員天天至少集成一次,也就意味着天天可能會發生屢次集成。每次集成都經過自動化的構建(包括編譯,發佈,自動化測試)來驗證,從而儘早地發現集成錯誤。而Jenkins就是基於Java開發的一種持續集成工具,用於監控持續重複的工做。apache
持續集成的核心價值:
1)持續集成中的任何一個環節都是自動完成的,無需太多的人工干預,有利於減小重複過程以節省時間、費用和工做量;
2)持續集成保障了每一個時間點上團隊成員提交的代碼是能成功集成的。換言之,任什麼時候間點都能第一時間發現軟件的集成問題,使任意時間發佈可部署的軟件成爲了可能;
3)持續集成還能利於軟件自己的發展趨勢,這點在需求不明確或是頻繁性變動的情景中尤爲重要,持續集成的質量能幫助團隊進行有效決策,同時創建團隊對開發產品的信心。
持續集成的原則:
1)須要版本控制軟件保障團隊成員提交的代碼不會致使集成失敗。經常使用的版本控制軟件有IBM Rational ClearCase、CVS、Subversion等;
2)開發人員必須及時向版本控制庫中提交代碼,也必須常常性地從版本控制庫中更新代碼到本地;
3)須要有專門的集成服務器來執行集成構建。根據項目的具體實際,集成構建能夠被軟件的修改來直接觸發,也能夠定時啓動,如每半個小時構建一次;
4)必須保證構建的成功。若是構建失敗,修復構建過程當中的錯誤是優先級最高的工做。一旦修復,須要手動啓動一次構建。
持續集成系統的組成 :
因而可知,一個完整的構建系統必須包括:
1)一個自動構建過程,包括自動編譯、分發、部署和測試等。
2)一個代碼存儲庫,即須要版本控制軟件來保障代碼的可維護性,同時做爲構建過程的素材庫。
3)一個持續集成服務器。本文中介紹的Jenkins就是一個配置簡單和使用方便的持續集成服務器。tomcat
2、Jenkins是什麼?服務器
Jenkins是一個開源軟件項目,旨在提供一個開放易用的軟件平臺,使軟件的持續集成變成可能。app
功能: 一、持續的軟件版本發佈/測試項目。 eclipse
二、監控外部調用執行的工做。webapp
特性:
1.開源
2.安裝、配置簡單--只要把jenkins.war部署到servlet容器,不須要數據庫支持,全部配置都是經過其提供的web界面實現。
3.集成RSS/E-mail經過RSS發佈構建結果或當構建完成時經過e-mail通知。
4.生成JUnit/TestNG測試報告。
5. Jenkins支持分佈式構建
6.插件支持:支持擴展插件,目前有幾百個現成的插件可使用,這些插件涵蓋從版本控制、構建工具、代碼質量、構建通知、集成外部系統、 UI定製、遊戲等等各個方面。
3、安裝配置
jenkins官網:https://jenkins.io/index.html,選擇適合本身的版本下載便可。個人版本 for Windows。
1.安裝:解壓zip文件獲得,雙擊安裝便可,根據本身的需求選擇要安裝的目錄。個人安裝目錄以下:
安裝完成後如何驗證一下是否成功呢?Jenkins.war!
驗證方式:執行命令行或直接將Jenkins.war放到tomcat webapps下啓動服務便可
(1)打開cmd命令行,進入到Jenkins安裝目錄,直接運行java -jar jenkins.war 默認的端口是8080(在jenkins.xml中配置),也可執行java -jar jenkins.war --httpPort=7080,自定義其餘端口驗證
啓動成功以下:
(2)直接將Jenkins.war放到tomcat webapps下啓動服務便可。
上述兩種方式啓動成功後,訪問http://localhost:7080,根據提示設置用戶登陸信息,個人已設置直接進入登陸頁面
輸入用戶名密碼登陸:成功!!!
2.配置:進入 系統管理--Global Tool Configuration
配置JDK,MAVEN
配置完成後保存。接下來就能夠新建job了。
3.返回首頁,新建任務,點擊 新建 按鈕,
輸入任務名稱,選擇構建一個自由風格的軟件項目並保存。
在general裏面更具本身想須要勾選,包括工做空間,默認C:\Users\admin\.jenkins\workspace;
注意:若是有多個項目,(1)建議工做空間+項目名稱,例:C:\Users\admin\.jenkins\workspace\demo,demo爲項目名稱,也可取其它名稱,這樣會在工做空間下新建不一樣目錄,以便區分不一樣項目;(2)若是選擇默認空間,可在「源碼管理」 模塊 Local module directory文本框中輸入本身的項目名稱,以區分不一樣項目
原碼管理,在此我使用svn;填寫Repository URL及Credentials,及svn的地址及用戶信息,其中Credentials在首頁Credentials選項新建;
注意:若是是Maven項目,且有多個模塊,則Repository URL路徑指向全部項目的根地址
在首頁Credentials選項新建,輸入svn的帳號和密碼
構建觸發器:
Poll SCM:定時檢查源碼變動(根據SCM軟件的版本號),若是有更新就checkout最新code下來,而後執行構建動做。個人配置以下:
*/5 * * * * (每5分鐘檢查一次源碼變化)
Build periodically:週期進行項目構建(它不care源碼是否發生變化),個人配置以下:
0 2 * * * (天天2:00 必須build一次源碼)
4.項目構建:
maven version : 選以前錄入的maven;
Goals選項輸入打包編譯時要執行的命令,如:clean package/clean install;
POM選項選擇pom文件所在的相對位置,若是有多個Maven模塊,選擇父級的pom.xml;
保存,首頁左側 點擊 當即構建 選項便可構建項目了。
查看構建日誌:
日誌信息:
構建成功!!!如報一下錯誤:
解決方案:
(a)修改pom.xml文件
<build>
<finalName>demo</finalName>
</build>
添加<defaultGoal>install</defaultGoal>
即:
<build>
<defaultGoal>install</defaultGoal>
<finalName>demo</finalName>
</build>
(b)指定默認Goals
從新構建。
5.部署項目:
構建後操做:
配置後保存,從新構建,其中demo是我web項目的名稱,此處的http://localhost:8081,是部署demo項目的服務器和端口
WAR/EAR files:target\demo.war,是構建後生成的war包,正常狀況下打包成功後就會部署到tomcat下webapps目錄下,如
果構建成功,但沒有自動部署,修改WAR/EAR files:**/*.war試試。
構建成功後,便可登陸項目驗證:
到此Jenkins部署就完成了!!!!!!!!!!!!!!
最後還有一個自動部署的問題:上面咱們已經配置了構建觸發器,那怎麼用呢?
看管理插件:
已安裝插件,若是在已安裝插件未找到,即未安裝,可在可選插件中搜素安裝便可。
。。。。。。。。。