1. 程式人生 > >利用jenkins做項目的自動化部署

利用jenkins做項目的自動化部署

ima eight 安裝jenkins 等待 狀態 同學 流程 plugins 編譯

最近領導要求上海本地的項目需要使用進jenkins實現自動化部署,以便可以直接將項目移交給運維的同學,減輕開發的工作量。記錄下這次爬坑的過程。

一、前言

Jenkins是基於Java開發的一種持續集成工具,用於監控持續重復的工作,功能包括: 1、持續的軟件版本發布/測試項目。 2、監控外部調用執行的工作。
上面是我從百科上down下來的,老實說沒看懂,這是個什麽玩意啊?其實以我現在的理解和應用,最多的便是部署了,其他功能待研究╮(╯_╰)╭ 擼主目前在上海一個不知名國企打工,我們現在項目的發布流程是: 1、本地或打包服務器利用maven打成war包 2、遠程或者SSH連上項目服務器 3、停掉tomcat,刪除舊包和緩存,將新打的包放進去 4、重啟tomcat。完成 看似步驟簡單,其實占用了大量開發的的時間。 然後使用jenkins後: 1、點擊立即構建,完成。 什麽?就點擊個按鈕就完成了,沒錯,就是個按鈕。其實在你點擊按鈕後jenkins已經幫你把上述該走的流程後臺跑了一遍了,本次就介紹下怎麽讓它後臺跑。

二、安裝構建

本次介紹基於windows,可安裝在開發電腦或者windows server服務器

1、下載jenkins

  jenkins提供多種安裝方式 1.1 jenkins.msi安裝 就像我們平時安裝軟件一樣,點點點。下載地址:https://jenkins.io/download/ 1.2 jenkins.war 包 既然是war包,不用說大家都知道怎麽啟動了,扔到tomcat就行了。下載地址:http://updates.jenkins-ci.org/download/war/

2、啟動jenkins

我個人是比較推薦1.1的安裝方式的,1.2我在使用的時候經常遇到內存溢出的問題,當然內存溢出是可以調整的,但是多出了多余的工作量不是嘛。 采用1.1的安裝方式,安裝完成後我們會在windows的服務裏面看到jenkins服務的。如下圖,啟動關閉重啟直接點服務就行了。 技術分享

采用1.2的的方式下載war包的話,其實有兩種啟動方式。

第一種,放到tomcat容器,

第二種,cmd進入安裝目錄,java -jar jenkins.war

3、安裝jenkins

安裝方式1.1和1.2 的流程是一樣的

jenkins默認8080端口,可以修改,方法百度。

進入http://localhost:8080/。紅色字體路徑有密碼,將密碼填上,然後下一步。

技術分享

選擇插件,建議選擇官方建議插件,避免很多麻煩。

技術分享

等待安裝中ing......

安裝好後看到下圖,用戶名密碼登陸用的,全名是用來顯示的。繼續下一步。

技術分享

因為我要部署的是maven項目,jenkins默認的插件中是沒有maven的,首先需要安裝下。

技術分享

點擊下圖插件直接安裝就行了,maven integration plugins

技術分享

安裝熱部署插件Deploy to container Plugin

技術分享

4、配置jenkins

技術分享

我們需要配下maven的setting文件,jdk以及maven地址,setting文件一定要配,不要用它默認的,擼主因為這個沒配,出問題糾結好久。

技術分享

技術分享

技術分享

最後Apply然後Save就行了,記得別忘了應用保存,不然白配了。

接著我們來新建一個項目,先輸入項目名,選擇maven項目,OK

技術分享

技術分享

選擇源碼管理,因為我們是企業項目,不是開源,使用的SVN,選擇Subversion配置SVN

URL是你SVN地址,Credentials是賬戶密碼

技術分享

然後到Pre Steps,這個東西是打包前需要什麽操作,比如我們現在的項目需要拷貝log4j.xml文件等等,根據環境可以寫windows或者Shell腳本

沒有操作的話,就不用配了

技術分享

Build編譯了,指定pom位置,以及mvn命令,對了高級裏面還可以配置workspace,不配默認在jenkins安裝目錄中

技術分享

構建後操作,就是包打好了放在哪。選擇下圖

技術分享

技術分享

本次構建後操作,使用的是tomcat的熱部署,熱部署可以參考我之前的文章:Tomcat7的熱部署

5、開始構建

講了那麽多,終於到了最後了,一個按鈕的操作終於到了,返回jenkins首頁就可以看到我們的項目了。

技術分享

構建後點擊左下角構建執行狀態中可以看到我們的項目在構建中。點擊項目名進入

技術分享

選擇Console就能看到我們構建過程中打印出來的日誌或者錯誤信息了。

技術分享

三、存在的問題

jenkins角色問題,既然是發布就涉及到生產環境,不能所有用戶都有部署生產環境的權限吧,如果誰不小心點了下。那後果.....不敢相信。

tomcat熱部署的問題, deploy幾次之後出現內存上漲溢出,停止運行或者報錯的問題,網上查了下是熱部署本身的問題,正在尋求解決辦法ing.....。

利用jenkins做項目的自動化部署