1. 程式人生 > >利用jenkins實現自動構建、部署,提升團隊開發效率

利用jenkins實現自動構建、部署,提升團隊開發效率

  一大早就被群裡的同學刷銀川下雪的訊息,看著我都發冷,突覺一陣涼風裹身,是不是該考慮秋褲了。

        偏離主題,正文走起......

        使用jenkins目標:利用其結合maven完成自動構建,並部署到tomcat,解放出雙手,專注於業務邏輯實現,可配置成定期自行構建部署,亦可由測試人員根據測試情況,手動完成構建部署。

        jenkins搭建執行有段時間,主要是利用“Deploy to container Plugin“來達到自動構建、部署的目標。但此外掛執行起來不穩定,經常會導致目標Tomcat服務出現OutOfMemoryError: PermGen space的異常,很是讓人頭疼,一直未得到妥善解決。

        此次實在是構建釋出太頻繁,搞的頭暈眼花,決意要解決掉此問題,此前有一個方案是使用linux的shell指令碼來完成,一直未測試使用,[感謝蕭斌兄提供參考指令碼],稍加修改測試實驗,已經完全正式執行在測試環境中。

        同時,結合maven的profiles特性,結合對應的filter檔案,配置在jenkins的maven構建選項中,使用 -P dev/test/prd等,即可實現針對不同環境打不同的構建包,無須再針對不同環境,一一去修改繁瑣的配置檔案。

shell指令碼主體內容:

#!/bin/sh  

#defined   

export JAVA_HOME=/usr/java/jdk1.7.0_79

TOMCAT_HOME="/home/tomcat/server-tomcat/"  

ID=`ps -ef |grep java |grep rests |awk '{print $2}'`  

echo $ID   

echo "kill tomcat"  

kill -9 $ID  

echo "remover war file"  

cd "$TOMCAT_HOME"webapps/rests  

rm -rf rests

rm -rf rests.war   

echo "copy war to webapp"  

cp -rf /root/.jenkins/workspace/parent/rests/target/rests.war "$TOMCAT_HOME"webapps/rests

jar xvf *.war 

rm -rf *.war

cd "$TOMCAT_HOME"bin  

echo "start tomcat"  

./startup.sh

jenkins中的shell配置如下:


注意:一定是#!/bin/bash 而不是#!/bin/sh ,不然會執行出錯。