Jenkins自動化構建配置

寫在前頭

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

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

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

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

 

Jenkins實踐

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

能夠大體分爲兩個步驟c#

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

第二步:Jenkins自動構建服務器

徹底是自動化的,不須要人爲干預操做。只要IDEA上傳代碼到git,Jenkins就能幫你自動構建網絡

 

第一步

Jenkins從git拉去最新代碼併發

  • 首先在Github中設置Webhooks(網絡鉤子),它能夠在檢測到push以後,主動向Jenkins發起post請求

 

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

 

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

 

第二步

Jenkins自動構建併發布代碼maven

  • 首先打開項目的配置文件,在項目中配置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'
相關文章
相關標籤/搜索