Jenkins自動化構建配置


寫在前頭

我每次修改代碼一點東西,都要進行一個重新發布。重新發布的流程大概如下:

  • 將最新代碼同步上傳到git上面
  • Maven打包 mvn clean install
  • 將最新的jar包上傳到服務器上面,一般我用 lrzsz 如果遇到網速慢就沒辦法了
  • 最后執行腳本,運行程序

大概四個步驟,時間最長的就是將jar包上傳到服務器上面去了。如果包有問題,還有重新進行上面四個步驟,甚是煩人

在實習中,無意中接觸到了Jenkins自動構建工具,那我們就來了解一下吧。

 

Jenkins實踐

目的:本地IDEA一旦push了代碼,jenkins能自動拉去最新代碼,並且自動構建最新代碼,發布

可以大致分為兩個步驟

第一步:Jenkins從git拉去最新代碼

第二步:Jenkins自動構建

完全是自動化的,不需要人為干預操作。只要IDEA上傳代碼到git,Jenkins就能幫你自動構建

 

第一步

Jenkins從git拉去最新代碼

  • 首先在Github中設置Webhooks(網絡鈎子),它可以在檢測到push之后,主動向Jenkins發起post請求

 

  • 其次在Jenkins里面配置git的信息

 

  • 最后在每次Jenkins新建項目的時候,配置項目在git的地址,這樣就能區分哪個項目了

 

第二步

Jenkins自動構建並發布代碼

  • 首先打開項目的配置文件,在項目中配置git的地址

 

  • 其次打開gitHook這個選項(記得一定要勾選)

 

  • 最后在執行shell腳本那里,輸入maven命令和構建完要執行的腳本即可

 

Jenkins構建三大坑

  • 第一大坑

Maven執行報錯 我們通常執行Maven命令如下: mvn clean install -Dmaven.test.skip=true

但這樣寫必報錯。因為Jenkins默認會為你加上mvn前綴,,所以你只用

clean install -Dmaven.test.skip=true 即可

  • 第二大坑

Jenkins沒有權限去執行shell腳本,被拒絕

可以將Jenkins設置為777,但這是非常不友好的。

具體可以參考以下這篇文章:Jenkins執行腳本提示沒有權限的解決辦法

  • 第三大坑

Jenkins直接完成構建,會將構建啟動的進程,全部殺死,我滴媽呀

BUILD_ID=DONTKILLME,即可防止jenkins衍生進程

具體可以參考以下這篇文章:jenkins 殺死衍生進程

 

Jenkins最終效果如下

由於博客園不支持上傳視頻,只能把視頻放在第三方平台上了

鏈接如下

Jenkins演示最終效果(點擊我)

 

寫在最后

Jenkins是真的蠻方便的,只要我上傳代碼至git,他就一路下來自動拉代碼,運行腳本,發布,非常的方便

別看我這樣簡單的搭建完成了,沒試過的可以試試,你會發覺坑還是很多的。

加油啦!!!

 

附錄:

osc.sh的腳本

 1 #!/bin/bash
 2 pid=$(ps -ef | grep com.gdufe.osc.OscApplication | grep 'java' | grep -v grep | awk '{print $2'})
 3 if [ -z "$pid" ]; then
 4  echo 'there are not OscApplication process. starting will be continue.'
 5 fi
 6 if [ -n "$pid" ]; then
 7  echo 'java process id is '$pid
 8  if ps -p $pid > /dev/null
 9  then
10   echo $pid' will be kill'
11   kill -9 $pid
12  fi
13 fi
14 echo 'start OscApplication wait.'
15 nohup java -jar osc.jar com.gdufe.osc.OscApplication  >/dev/null 2>error.log &
16 echo 'finish starting OscApplication'

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM