JenKins整合Maven自動化構建
阿新 • • 發佈:2019-02-17
最近看了好多招聘資訊,發現有要求會Jenkins結合Maven做自動化構建的,剛好最近工作中有用到,上手很簡單,功能很實用,但是也有很多坑需要注意,於是就寫了這篇文章。
廢話不多說,直接上圖。
由於專案是maven專案,由10個專案相互依賴,因此建立了個build專案,裡面只有個pom.xml檔案,來構建這10個專案。
svn結構圖如下:
因此在配置jenkins時,如下圖所示:
這裡有一點要說明,也是本人踩過的坑,build專案一定要放在最上面配置,否者整和所有專案的pom.xml檔案不會生效。
還有一個坑,由於maven的版本原因整和其他工具會有bug,jenkins整和maven(3.3.5以上版本包括3.35)會出現bug,使用3.3.3以下版本包括3.3.3則不會出現這個問題(含淚趟坑).
新增構建步驟:
配上build專案中的pom.xml檔案,輸入maven構建命令
剩下的步驟就是把maven專案構建後生成的專案war包自動部署到我們的tomcat伺服器中,試過很多方式,包括使用jenkins自帶的外掛,由於其他未知原因均未成功,這裡推薦使用Execute shell,使用shell命令實現自動部署,廢話不多說,直接上我自己的程式碼。
#!/bin/sh projname=專案名 projpath=maven構建生成war包的路徑 uploadpath=/usr/java/report/apache-tomcat-8.0.15/webapps if [ -f "${projpath}/${projname}.war" ]; then rm -rf uploadpath/${projname}* cp ${projpath}/${projname}.war ${uploadpath} pid=`ps -ef |grep tomcat|egrep -v "grep"|grep apache-tomcat-8.0.15|awk '{print $2}'` if [ -n "$pid"];then sh /usr/java/report/apache-tomcat-8.0.15/bin/shutdown.sh fi sh /usr/java/report/apache-tomcat-8.0.15/bin/startup.sh else echo "war 包不存在" exit 1 fi echo "success" exit 0 關於郵箱的配置這裡就不另加綴述了 (第一次寫部落格,希望能幫廣大Coder們節省時間,關於樣式,以後有機會我多改進)