本文接着上篇安裝jenkins,安裝相關插件,使用咱們公司持續集成的測試環境實例進行演示linux
========= 完美的分割線 ==========web
若是要使用jenkins自帶的maven插件進行打包,須要安裝maven插件,較經常使用,不過我這邊使用的是服務器上已經安裝好的maven工具,因此該插件能夠不安裝shell
如下是經常使用的jenkins插件安裝方法:以maven插件爲例瀏覽器
進入jenkins的「系統管理」中的「插件管理」,選擇可選插件的選項卡(個人已經安裝好),查找關鍵字「Maven Integration」,以後勾選進行安裝,安裝完成,重啓應用便可緩存
# 操做步驟以下圖:tomcat
1)選擇項任務稱和類型服務器
安裝完maven插件,重啓進入首頁,點擊新建任務,能夠看到選項菜單多出一個「構建一個maven項目」,以下圖:運維
鍵入一個項目名稱(testweb),選中「構建一個maven項目」,點擊確認便可maven
若是有已經存在的項目能夠將配置文件進行復制,能夠自動補全,以下圖:svn
複製項目能夠大大節省咱們構建一個完整項目集羣的時間
有多個選項卡供選擇
1)General選項卡
# 設置通常功能,註釋等
# 丟棄舊的構建,防止保留過多的代碼包影響服務器性能,能夠按照天數和代碼包個數進行保留
2)源碼管理選項卡
# 設置代碼的拉取設置
這裏選擇svn代碼庫,須要填入svn的連接,增長個認證用戶(建議對jenkins專門設置),
而後就是檢出的選項,默認是儘量使用update更新,爲了防止代碼更新衝突,我這裏設置老是全新檢出(會多耗費必定時間和性能)
3.構建選項卡
# 設置構建工程時須要執行的命令,這些命令就是在服務器中正常執行的
構建時直接選擇執行shell命令便可,而後將通常發佈項目代碼的腳本寫上來就能夠了,而後單擊保存
附上一個個人代碼發佈腳本供參考:
#!/bin/sh ################################################ # This script is made by zhaoshuai on 20170509.# # for update coinnice web # # if you have any question please contact QQ # ################################################ ############# BEGIN ############## TIME=$(date +%Y%m%d-%H%M) TOMCAT_DIR=/usr/local/tomcat1 WEB_ROOT=/www.coinweb.com CODEDIR=tempdir . /etc/init.d/functions # Determine whether the package. if [ ! -f "$1" -o -z "$1" ] then sleep 1 action "Code deployment ......" /bin/false echo "Please confirm the <*.war>" exit 1 else echo "The <$1> will be deployed" fi if [ ! -d "$TOMCAT_DIR$WEB_ROOT" ] then sleep 1 action "The specified directory <$WEB_ROOT> does not exist" /bin/false echo "Please confirm the <$WEB_ROOT>" exit 1 else action "The specified directory <$WEB_ROOT> exist" /bin/true fi # Stop the web server. echo " " echo "====== Start stop web server ======" ps -ef | grep "$TOMCAT_DIR" | grep -v grep | awk '{print $2}' | sed -e "s/^/kill -9 /g" | sh - sleep 1 action "Stop the web server ......" /bin/true # Backup the web server echo " " sleep 1 echo "====== Start backup web server ======" /bin/mv $TOMCAT_DIR$WEB_ROOT ./$TIME sleep 1 action "Backup old web code ......" /bin/true # Update the web server echo " " sleep 1 echo "====== Start deploying new code ======" if [ -d ./$CODEDIR ] then echo "The \"$CODEDIR\" is exist" else mkdir -p ./$CODEDIR echo "The \"$CODEDIR\" is created" fi /bin/cp ./$1 ./$CODEDIR cd ./$CODEDIR jar xf $1 && /bin/rm -f $1 cd ../ /bin/mv $CODEDIR $TOMCAT_DIR$WEB_ROOT /bin/mv $TOMCAT_DIR/logs/catalina.out /tmp/tomcat1-$TIME.log /bin/rm -rf $TOMCAT_DIR/logs/* /bin/rm -rf $TOMCAT_DIR/work/* # www.coinweb.com #/bin/cp -rf ./$TIME/WEB-INF/classes/*.properties $TOMCAT_DIR$WEB_ROOT/WEB-INF/classes/ #echo "====== Code has been deployed ======" sleep 1 action "The new code deployment ......" /bin/true # Start web server echo " " sleep 1 echo "====== Start the web server ======" $TOMCAT_DIR/bin/catalina.sh start ps -ef | grep "$TOMCAT_DIR" | grep -v grep sleep 1 action "Start the web server ......" /bin/true # Open web logs #echo " " #sleep 1 #echo "====== Open web server logs ======" #tail -f $TOMCAT_DIR/logs/catalina.out ################## END ###################
配置完工程便可發佈項目代碼,這裏叫「構建工程」
單擊「當即構建」,會在左下角「構建歷史」標籤中產生一個項目構建的進度條,點擊圖中的閃爍的圓點能夠直接查看構建日誌
能夠在最開始看到正在構建這個項目的用戶,構建時的文件緩存目錄,時間,svn庫連接等
下面能夠看到,當前svn版本庫的代碼版本,能夠判斷是否更新到你提交的文件代碼等
開頭爲加號的就是咱們以前寫的shell命令
在往下的日誌
若是全部的命令均正常執行完畢在最下面能夠看到「Finished: SUCCESS」字樣,以下圖
不然就是「Finished: FAILURE」同時能夠看到是在哪一步處的錯方便排錯
至此,一個單純的jenkins構建項目的示例就完成了
1)建立的工程,配置文件在服務器的jenkins數據目錄下的job目錄中,以工程名testweb命名的目錄中「/data/jenkins/jobs/testweb/」
2)構建項目時的緩存目錄在數據目錄下的workspace中,「/data/jenkins/workspace」
3)通常來講jenkins代碼發佈平臺和tomcat站點運行的位置不在同一臺服務器須要考慮文件傳輸時的免密認證,本身作測試能夠將tomcat與jenkins放置於同一臺服務器
4)本文演示的是在整個持續集成平臺中運維工程師能夠操做的部分,如下操做須要與開發合做進行
構建Nexus私有庫導入某些jar文件,本文沒有展現
maven構建項目時須要用到的pom.xml配置文件
5)項目發佈完成後能夠在瀏覽器裏找到打好的war包,存儲位置在「工做空間」的「target」目錄裏
同時能夠再linux服務器的對應位置找到該代碼包
======= 完畢,呵呵呵呵 ========