寫在前頭
我每次修改代碼一點東西,都要進行一個重新發布。重新發布的流程大概如下:
- 將最新代碼同步上傳到git上面
- Maven打包 mvn clean install
- 將最新的jar包上傳到服務器上面,一般我用 lrzsz 如果遇到網速慢就沒辦法了
- 最后執行腳本,運行程序
大概四個步驟,時間最長的就是將jar包上傳到服務器上面去了。如果包有問題,還有重新進行上面四個步驟,甚是煩人
在實習中,無意中接觸到了Jenkins自動構建工具,那我們就來了解一下吧。
Jenkins實踐
可以大致分為兩個步驟
第一步:Jenkins從git拉去最新代碼
第二步:Jenkins自動構建
完全是自動化的,不需要人為干預操作。只要IDEA上傳代碼到git,Jenkins就能幫你自動構建
第一步
Jenkins從git拉去最新代碼
- 首先在Github中設置Webhooks(網絡鈎子),它可以在檢測到push之后,主動向Jenkins發起post請求

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

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

第二步
Jenkins自動構建並發布代碼
- 首先打開項目的配置文件,在項目中配置git的地址


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

Jenkins構建三大坑
- 第一大坑
Maven執行報錯 我們通常執行Maven命令如下: mvn clean install -Dmaven.test.skip=true
但這樣寫必報錯。因為Jenkins默認會為你加上mvn前綴,,所以你只用
clean install -Dmaven.test.skip=true 即可
- 第二大坑
可以將Jenkins設置為777,但這是非常不友好的。
具體可以參考以下這篇文章:Jenkins執行腳本提示沒有權限的解決辦法
- 第三大坑
BUILD_ID=DONTKILLME,即可防止jenkins衍生進程
具體可以參考以下這篇文章:jenkins 殺死衍生進程
Jenkins最終效果如下
由於博客園不支持上傳視頻,只能把視頻放在第三方平台上了
鏈接如下
別看我這樣簡單的搭建完成了,沒試過的可以試試,你會發覺坑還是很多的。
加油啦!!!
附錄:
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'
