目前公司開發的項目已經部署到服務器上,部署項目的測試環境和生產環境,加上每個項目n個服務,於是我就
,
騷就是騷,但是就是太累了,於是花點時間研究了一下Jenkins。

Jenkins的作用和它的logo表現出來的一樣,就是為了做工作的時候,能夠比較輕松,像個紳士一樣游刃有余。哈哈哈……下面開始吧!
一、安裝內容
Jenkins(本文主要安裝)、Maven、Git、JDK(這個三個安裝過程略)
Jenkins與Github配合實現持續集成需要注意以下幾點:
①Jenkins要部署到外網,因為內網Github是無法訪問到的(走過的坑!),這里我租用的是阿里雲的服務器實現。
②Jenkins所在的主機需要安裝Git,通過Git程序從Github上clone代碼
③在Jenkins中需要指定Git、Maven、JDK,路子都是相同的。
④在Github上使用每一個repository的webhook方式遠程觸發jenkins構建
⑤在Jenkins內關閉“防止跨站點請求偽造”
二、實現過程

1.不使用Jenkins:
①我們開發人員需要編寫代碼,提交到版本控制服務器(Svn、Git)
②我們開發人員需要手動拉取最新代碼,構建maven工程,進行打包(war或jar)
③我們開發人員手動部署war或jar至應用服務器
④一旦項目上線,bug修改等小改動問題都要重復以上過程
2.使用Jenkins:
①同樣,業務代碼還是需要開發人員來編寫並commit或push至版本控制自服務器(SVN、Git)
②通過以上圖,我們發現,Jenkins幫我們做了:拉取最新代碼、打包、部署
③我們開發人員只需專注於:業務代碼的編寫
④一旦項目上線,bug修改等小改動問題,我們開發人員只需提交最新代碼即可,另一邊的測試或最終用戶就能看到最終效果,大大減少我們開發人員的工作量
三、Github倉庫准備
鄙人寫了一個小demo,用IDEA+Maven構建的SpringBoot的web項目:https://github.com/Simple-Coder/jenkins-demo
四、Jenkins的下載安裝
下載地址:https://jenkins.io/download/(下載速度極慢),這里我已經將最新版的war包上傳至CSDN下載,親測可用,下載地址如下:
https://download.csdn.net/download/qq_39947137/11829473
1.Jenkins的war包下載
由於我是Java開發人員,最喜歡一鍵部署了,下載Jenkins的war直接丟進tomcat的webapps目錄即可完成部署。

然后找到documentation,get started,這是學習一門新技術的一些套路了:官網---->download---->documentation---->getting started
2.將war包丟進服務器的tomcat/webapps目錄,瀏覽器訪問:IP:端口/jenkins

注:第一次安裝,這里坑了我好久!!!(vim /root/.jenkins/hudson.model.UpdateCenter.xml)
打開 hudson.model.UpdateCenter.xml
把 http://updates.jenkins-ci.org/update-center.json
改成 :(以下其中一個)
http://mirror.xmission.com/jenkins/updates/update-center.json
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
http://mirror.esuni.jp/jenkins/updates/update-center.json
,還是不行的話找到 updates 目錄下的 default.json 把里面所有的谷歌地址改成百度的,即將 http://www.google.com/ 替換為 http://www.baidu.com/。輸入密碼后出現以下界面說明成功。

配置完成出現以下界面說明url配置完成!

3.推薦插件安裝

4.創建用戶

5.實例配置

6.開始使用

7.進入首頁

至此、Jenkins的下載安裝,完成,下面對Jenkins進行一系列的配置。
五、Jenkins的配置
1.插件配置
①Maven Integration:新建job時有maven項目可以選擇;
②Deploy to container:將war包部署到tomcat所在的服務器上;
③Publish Over SSH:通過ssh推送文件,並可以執行shell命令;

2.Maven、Git、JDK配置
點擊:“系統管理”------>“全局工具配置”

六、新建Jenkins任務
1.點擊“系統管理”---->“系統設置”,進行ssh配置

2.首頁點擊:“新建任務”

3.General配置

4.源碼管理

5.構建觸發器

6.Github配置WebHook,完成鈎子程序的配置

7.構建環境

啟動腳本restart.sh如下:

echo "stop服務開始"
pidlist=`ps -ef|grep jenkins-demo.jar | grep -v "grep"|awk '{print $2}'`
#ps -u $USER|grep "Java"|grep -v "grep"
if [ "$pidlist" = "" ]; then
echo "no jenkins-demo pid alive"
else
echo "jenkins-demo Id list :$pidlist"
for pid in ${pidlist}
{
kill -9 $pid
echo "KILL $pid:"
echo "service stop success"
}
fi
echo "stop服務腳本結束"
echo "start服務腳本開始"
JAVA_HOME=/usr/java/jdk1.8.0_181
dir=/opt/jenkins_jars
cd $dir
echo dir=$dir
jar=$(find /lib -type f -name *.jar)
classpath=$dir/*:$dir/lib/*:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
echo classpath=$classpath
echo ---------------------------------------------
nohup $JAVA_HOME/bin/java -classpath $classpath -XX:-UseGCOverheadLimit -Xms1024m -Xmx2048m -jar $dir/jenkins-demo.jar > $dir/log/$(date +'%Y%m%d').log &
echo "start服務腳本結束"
8.構建

至此,第一個任務的配置完畢,接下來就是測試了!
七、測試任務
1.立即構建

2.控制台查看輸出

控制台的輸出如下:

3.瀏覽器訪問:http://47.92.236.212:8091/test

4.IDEA修改該JSP頁面,並推送至git倉庫

5.推送github后,觸發鈎子程序,jenkins自動構建任務

6.瀏覽器再次訪問:http://47.92.236.212:8091/test

八、總結
這里需要注意一下,如果只是單單部署war項目就比較簡單了,配置如下:
1.deploy to container

2.配置容器

在學習安裝Jenkins之前也是走了很多彎路,不會都是到處百度,最終還是完成了Jenkins+Git+Maven實現了SpringBoot的持續集成部署,如果大家有什么問題,歡迎留言討論,說不定你出現的問題我也出現過呢?哈哈哈,互相學習!
