1.持續集成工具 Jenkins的優勢java
1.1 持續部署 linux
1.2 持續集成 程序員
1.3 持續交付web
項目開發windows
項目的各個升級版本之間間隔時間太長,對用戶反饋感知遲鈍,沒法精確改善
用戶體驗,用戶流失嚴重。
那怎麼作會好一些呢?
用 小版本不斷進行 快速迭代,不斷收集用戶反饋信息,用最快的速度改進優化。
關注點
持續交付的關注點在於研發團隊的最新代碼可以儘快讓最終用戶體驗到。centos
1.4 整體目標 整體目標
處 好處 1 :下降風險
一天中進行屢次的集成,並作了相應的測試,這樣有利於檢查缺陷,瞭解軟件
的健康情況,減小假定。
處 好處 2 :減小重複過程
產生重複過程有兩個方面的緣由,一個是編譯、測試、打包、部署等等固定操
做都必需要作,沒法省略任何一個環節;另外一個是一個缺陷若是沒有及時發現,有
可能致使後續代碼的開發方向是錯誤的,要修復問題須要從新編寫受影響的全部代
碼。
而使用 Jenkins 等持續集成工具既能夠把構建環節從手動完成轉換爲自動化完
成,又能夠經過增長集成頻次儘早發現缺陷避免方向性錯誤。
處 好處 3 :任什麼時候間、任何地點生成可部署的軟件
持續集成可讓您在任什麼時候間發佈能夠部署的軟件。從外界來看,這是持續集
成最明顯的好處,咱們能夠對改進軟件品質和減小風險提及來口若懸河,但對於客
戶來講,能夠部署的軟件產品是最實際的資產。利用持續集成,您能夠常常對源代
碼進行一些小改動,並將這些改動和其餘的代碼進行集成。若是出現問題,項目成
員立刻就會被通知到,問題會第一時間被修復。不採用持續集成的狀況下,這些問
題有可能到交付前的集成測試的時候才發現,有可能會致使延遲發佈產品,而在急
於修復這些缺陷的時候又有可能引入新的缺陷,最終可能致使項目失敗。
處 好處 4 :加強項目的可見性
持續集成讓咱們可以注意到趨勢並進行有效的決策。若是沒有真實或最新的數
據提供支持,項目就會遇到麻煩,每一個人都會提出他最好的猜想。一般,項目成員
經過手工收集這些信息,增長了負擔,也很耗時。持續集成能夠帶來兩點積極效果:
(1)有效決策:持續集成系統爲項目構建狀態和品質指標提供了及時的信息,
有些持續集成系統能夠報告功能完成度和缺陷率。
(2)注意到趨勢:因爲常常集成,咱們能夠看到一些趨勢,如構建成功或失敗、
整體品質以及其它的項目信息。
處 好處 5 :創建團隊對開發產品的信心
持續集成能夠創建開發團隊對開發產品的信心,由於他們清楚的知道每一次構
建的結果,他們知道他們對軟件的改動形成了哪些影響,結果怎麼樣。瀏覽器
2.持續集成工具
2.1 Jenkins 和 Hudson
目前最流行的一款持續集成及自動化部署工具。
Jenkins 和 Hundson 之間的關係:2009 年,甲骨文收購了 Sun 並繼承了 Hudson 代
碼庫。在 2011 年年初,甲骨文和開源社區之間的關係破裂,該項目被分紅兩個獨立的
項目:
Jenkins:由大部分原始開發人員組成
Hudson:由甲骨文公司繼續管理
因此 Jenkins 和 Hudson 是兩款很是類似的產品。
2.2 技術組合 技術組合
Jenkins 能夠整合 GitHub 或 Subversion
Husband 也能夠整合 GitHub 或 Subversion
兩者既然是同源的工具軟件,操做和指導思想就是接近的,因此本教程經過 Jenkins
爲你們呈現。tomcat
3 JavaEE 項目部署方式對比服務器
3.2 自動化部署 自動化部署
「自動化」的具體體現:向版本庫提交新的代碼後,應用服務器上自動部署,用戶
或測試人員使用的立刻就是最新的應用程序。app
搭建上述持續集成環境能夠把整個構建、部署過程自動化,很大程度上減輕工做量。
對於程序員的平常開發來講不會形成任何額外負擔——本身把代碼提交上去以後,服務
器上運行的立刻就是最新版本——一切都發生在無形中。
下面咱們講帶領你們一步一步搭建整套持續集成環境,這個操做過程只須要細心認
真便可,沒有任何難度。可是須要優秀的你具有如下前置知識:
Linux 基本操做命令和 VIM 編輯器使用
Maven 的項目構建管理
GitHub 或 SVN 使用
4 Jenkins+SVN 持續集成環境搭建
4.1 系統結構總述 系統結構總述
建立虛擬機安裝 Linux 系統
版本控制子系統
Subversion 服務器
項目對應版本庫
版本庫中鉤子程序
持續集成子系統
JDK
Tomcat
Maven
Jenkins
主體程序
SVN 插件
Maven 插件
Deploy to Web Container 插件
應用發佈子系統
JDK
Tomcat
4.2 linux版SVN的安裝
centos7
2.安裝svn
yum -y install subversion
3.配置
創建版本庫目錄
mkdir -p /svn/svnrepos
4.創建版本庫
建立一個新的Subversion項目
svnadmin create /svn/svnrepos
五、進入svn/svnrepos/conf目錄(該svn版本庫配置文件)
authz文件是權限控制文件
passwd是賬號密碼文件
svnserve.conf SVN服務配置文件
六、設置賬號密碼
vi passwd
在[users]塊中添加用戶和密碼,格式:賬號=密碼,如dan=dan
七、設置權限
vi authz
在末尾添加以下代碼:
[/]
dan=rw
w=r
意思是版本庫的根目錄dan對其有讀寫權限,w只有讀權限
八、修改svnserve.conf文件
打開下面的幾個註釋:注意要頂行寫。前面不能有空格
anon-access = none #匿名用戶不能操做
auth-access = write #受權用戶可寫
password-db = passwd #使用哪一個文件做爲帳號文件
authz-db = authz #使用哪一個文件做爲權限文件
九、啓動svn版本庫
svnserve -d -r /var/svn/svnrepos
10.SVN默認的打開端口是3690
能夠經過下面的命令查看:
netstat -antp | grep svn
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 66486/svnserve
11.centos7 打開防火牆端口
$ sudo firewall-cmd --permanent --add-port=3690/tcp $ sudo firewall-cmd --reload
十二、在windows上測試
在elipse中導入SVN,輸入SVN://ip
5.Tomcat的配置。
僅記錄 Tomcat 服務器的帳號密碼
配置文件位置:/opt/tomcat/conf/tomcat-users.xml
打開 Tomcat 解壓目錄/server.xml 修改 URL 地址的編碼解碼字符集
把 jenkins.war 放在 Tomcat 解壓目錄/webapps 目錄下
啓動 Tomcat 並經過瀏覽器訪問
網址示例:http://192.168.70.131:8080/jenkins
注意:Linux系統必定要聯網
選擇以admin帳戶繼續。
界面以下
jenkins 中maven配置 這些是Maven在linux的安裝路徑下的setings.xml文件
JDK的配置 這些是linux中jdk的路徑
4.7 建立工程
4.7.1 建立工程
4.7.3 源碼管理
配好的效果
※注意:此時 Jenkins 的工做區中尚未代碼,須要執行一次構建操做以後
4.7.4 構建
4.7.5 構建後操做
4.9 Linux 的 的 curl 命令 命令
Linux 的 curl 命令用來發送 HTTP 請求。
-X 參數:指定請求方式
-v 參數:顯示響應結果
-u 參數:攜帶用戶名/密碼
-H 參數:攜帶請求消息頭信息