本文介紹jenkins如何從gitee上clone項目,然后使用maven打包并后臺啟動。
1.Jenkins介紹
Jenkins是一個開源軟件項目,是基于Java開發的一種持續集成工具,用于監控持續重復的工作,旨在提供一個開放易用的軟件平臺,使軟件的持續集成變成可能。 (以上介紹來源于百度百科)
其實通俗來說,Jenkins就是一個自動化部署項目的工具,幫我省去重復的運維工作。
2.環境準備
本文需要如下幾個工具:
- JDK
- Git
- Maven
以上三種就不在這里介紹安裝了,這里我貼出我的環境變量配置僅供參考:
- Jenkins
我的Jenkins是使用如下方式安裝:
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
sudo yum install jenkins
啟動
service jenkins start
然后訪問http://${ip}/8080,可以看到jenkins那個小老頭,根據自行配置安裝插件,其中密碼在這里
vi /var/lib/jenkins/secrets/initialAdminPassword
以上都在網上有很多,我在博客中也寫過,就不在這里廢話太多了。
3.Jenkins工具插件配置
3.1 插件配置
個人建議,Jenkins第一次進入推薦安裝的插件就默認安裝就行,省的還需要后續自己安裝,當然,如果自己安裝的話需要Maven和Git插件。
3.2 工具配置
- JDK
- Git
- Maven
這里就可以用到上面環境準備時需要的截圖,這里我也摸索了很久才配置完成。
4.配置項目
4.1 構建自由風格的項目
新建項目,選擇構建自由風格的項目,給項目起個名字,然后點擊Ok。
4.2 配置參數化構建過程
這里我用到了幾個參數,因為可能有時需要提前準備好參數在進行構建,如下圖:
- jar_path :本意是準備項目打包后的jar位置,其實這里是Jenkins工作空間
- spring_profile:這個是讀取配置文件前綴,比如dev,test,prod
- jar_name:jar包名稱
- project_name:項目名稱
4.3 Git配置
用Git進行將項目Clone下來,配置自己的用戶密碼,Repository URL配置git地址(這里提供的地址是私密項目,項目沒什么特別的,就是簡單SpringBoot項目,不用嘗試了,用自己項目就可以)
4.4 配置Build
這里選擇執行Shell,內容如下:
mvn clean install -Dmaven.test.skip=true
echo $spring_profile $jar_path $jar_name
cd /usr/local/shell/
./stop.sh $jar_name
echo "Execute shell Finish"
./startup.sh $spring_profile $jar_path $jar_name $project_name
如圖:
在上面執行的Shell里面還用到了兩個Shell,分別是stop.sh,實質就是找到jar執行的pid,然后kill,具體內容如下:
jar_name=${1}
echo "Stopping" ${jar_name}
pid=`ps -ef | grep ${jar_name} | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
echo "kill -9 的pid:" $pid
kill -9 $pid
fi
startup.sh內容如下,具體可以根據情況修改:
spring_profile=${1}
jar_path=${2}
jar_name=${3}
project_name=${4}
cd ${jar_path}/${project_name}/target/
echo ${jar_path}/${project_name}/target/
echo nohup java -jar ${jar_name} &
BUILD_ID=dontKillMe nohup java -jar ${jar_name} --spring.profiles.active=${spring_profile} &
5 測試運行
5.1 運行
點擊運行后,如圖所示,剛剛預配置的參數都可以看到并可以修改,這里我們用默認配置好的就可以。
然后點擊運行就可以,當時遇到了一個插曲,我的Maven是安裝成功的,但是Jenkins內無法使用,報錯mvn:command not found,這里我解決的方式是將mvn命令也指向/usr/bin/mvn,如下:
ln -s /usr/local/apache-maven-3.5.4/bin/mvn /usr/bin/mvn
訪問效果其實就是我的博客,如圖所示:
6 總結
總體過程坑其實還是很多的,畢竟沒有使用過,但是沒有什么特別棘手的問題,總是出現不同的問題,有需要可以與我一起交流學習。