- 項目摘要:
- 需要一臺linux虛擬機環境(本文是基於centerOS7),本內容基於文檔https://blog.csdn.net/qq_25337221/article/details/106069147爲基點。
- 本文檔軟件版本:
- git :1.8.3.1
- jdk 1.8.0
- Jenkins 2.222.3
- 小提示:經檢測,上文的源碼裏關於pom.xml配置稍有問題,在本文源碼下載已修正。
- 本文檔僅是一個入門案例。
- 項目具體實施:
- 安裝git
- 安裝jdk
首先卸載自帶jdk
yum remove *openjdk*
- 安裝mysql
https://www.runoob.com/mysql/mysql-install.html
- 安裝maven
首先卸載本地自帶maven
# rm -rf /etc/maven
# rm -rf /usr/share/maven
有時候還會報錯,將報錯地址刪除即可。
# tar -xf apache-maven-3.6.3-bin.tar.gz
mv apache-maven-3.6.3 /usr/local
vim /etc/profile
加入:
export MAVEN_HONE=/usr/local/apache-maven-3.6.3
export PATH=...:${MAVEN_HONE}/bin:$PATH
#source /etc/profile
# mvn -v
執行成功則maven安裝成功
- 安裝jenkins
- 進入網站:https://pkg.jenkins.io/redhat-stable/
- sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
- sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
- yum install jenkins
- systemctl start jenkins
- 瀏覽器輸入http://ip:8080
- cd /var/lib/jenkins/secrets
- cat initialAdminPassword
- 操作:
選擇推薦的安裝- 配置全局工具(JDK、git、maven)
擊系統管理,選擇全局工具配置,配置jdk。
配置git,不知道git地址可以執行下面這條命令查找,
# which git
maven配置
保存即可。
- 點擊新建任務,選擇構建一個自由風格的軟件項目,任務名稱爲:springboot-demo-freestyle,點擊確定。
配置General
- 配置源碼管理
-
這裏要注意,前提是ssh已生成,並且已經設置到GitHub可以拉取成功代碼。
此時可以構建一下項目,觀察時候構建成功。然後再進行下一步操作。
- 配置構建環境(構建觸發器放到後面)
配置構建過程
<1>配置maven
目標: clean install -Dmaven.test.skip=true (截圖有一點錯誤,install中間要有空格)
這裏選擇maven(自己配置的maven),不選擇“默認”。
可以執行cd /var/lib/jenkins/workspace觀察自己項目的路徑來配置。如果是../構建項目名/pom.xml,則這裏直接配置pom.xml即可。如果裏面是自己的項目名.../pom.xml,則這裏的地址從自己項目名這一步開始,直到pom.xml,這一步很容易出錯。
這裏也可以構建一次測試是否成功。
<2> 配置maven執行前
在“增加構建步驟”中選擇“執行shell”,並將其挪至maven上面。
源碼如下(項目名要改成自己的):
echo "Stopping SpringBoot Application"
pid=`ps -ef | grep user-service-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
kill -9 $pid
fi
<3>配置maven執行後
和上面一樣,繼續添加一個shell面板,加入如下代碼:
#!/bin/bash -ile
project=user-service-0.0.1-SNAPSHOT.jar #這裏需要替換成你jar包的名字
pathName=springboot-demo-freestyle/user-service #這裏也替換成你的,每個人不一樣
echo "拷貝文件"
rm -rf /usr/local/src/java/$project #刪除舊的war包 (這是我的war路徑,可以改成你的war包路徑)
cp /var/lib/jenkins/workspace/$pathName/target/$project /usr/local/src/java/ #因爲jenkins打包自動放在它自己的目錄下,我就cp複製到了我定義的目錄下 /usr/local/src/java/ 下
echo "切換路徑"
cd /usr/local/src/java/
pid=`ps -ef | grep $project | grep -v grep | awk '{print $2}'` #殺掉原有項目進程
if [ -n "$pid" ]
then
kill -9 $pid
echo "殺死存在進程"
fi
BUILD_ID=dontKillMe
echo "執行"
nohup java -jar $project & #啓動進程
echo "啓動成功!"
這個時候,再構建一次項目,如果都沒問題,可以在命令行檢查項目運行情況,可以使用curl命令執行一下是否可以正常訪問,再瀏覽器嘗試訪問。
端口使用情況命令:
# netstat -ntulp |grep 端口號
# lsof -i: 端口號
- 添加QQ郵件發送
<1>選擇系統配置
<2> 配置Jenkins Location
<3>配置Extended E-mail Notification
首先需要去QQ郵箱開啓發送功能,這部分參照QQ郵箱教程。
<4>配置郵件通知
<5> 保存切換到項目配置,在構建後操作選擇增加構建後操作步驟,選擇Editable Email Notification,如下配置:
至此,郵件配置完畢。如果要發送到slack比較簡單,但是slack配置有一點要注意,測試連接前先保存,否則測試不成功。
- 添加構建觸發器
這裏使用了jenkins+gitHub方式,這種方式要求jenkins所在服務器一定要有公網ip,這一點要注意。
<1>在github網站配置webhooks
<2>生成Personal access tokens
選擇github的setting,然後選擇Developer settings,接着選擇Personal access tokens,點擊Generate new token,配置如下:
將生成的token複製保存好。
<3>配置jenkins
在系統配置裏添加git服務器
有時候測試連接不一定可以成功,可以暫時忽略這個錯誤,繼續後續操作。
<4>在自己的創建項目配置中的構建觸發器中選擇“GitHub hook trigger for GITScm polling”,有時候會有警告,這個問題暫時沒找到怎麼解決,但是它不影響觸發事件。
<5>配置構建環境
此時,可以隨便改幾行代碼,然後更新到gitHub,測試觸發器是否觸發項目構建。
- 添加參數化構建過程(略)
這裏涉及到一個插件:Extended Choice Parameter
- 添加git參數化(略)
這裏涉及到一個插件:Git Parameter
- 參考鏈接:
- jenkins中springboot項目腳本: https://blog.csdn.net/lcz134258/article/details/90632700
- Jenkins中郵件通知:
https://www.cnblogs.com/cmnz/p/9356282.html
- Jenkins+GitHub構建觸發器:
https://blog.csdn.net/boling_cavalry/article/details/78943061
本內容源碼及文檔下載地址(除了源碼,文檔和本文一致,源碼是2.1基礎上改了一部分環境問題的配置):https://download.csdn.net/download/qq_25337221/12427514
本內容由安康學院“雨季”原創。