1.安裝Jenkins
下載地址https://jenkins.io/download/
可點擊下載安裝文件:bitnami-jenkins-2.190.3-0-windows-x64-installer.exe。自定義安裝目錄,然後其餘的配置按默認的來,一路next即可。
安裝完成後,jenkins會處於自動運行狀態,項目內置的tomcat也會自啓動,端口號全爲默認的。爲防止以後本地啓動tomcat項目時報端口號衝突,可選擇手動修改jekins內置tomcat的相應端口號。(注:此端口修改步驟非必須,按默認即可,可跳過)
先在電腦左下角的windows安裝程序窗口中找到新安裝的jenkins程序,點擊關閉服務。
然後,修改F:\Bitnami\jenkins-2.190.3-0\apache-tomcat\conf\server.xml,文件的一系列對應端口號。其中,比如:
同時也需要修改F:\Bitnami\jenkins-2.190.3-0\apps\jenkins\conf\httpd-app.conf 文件中對應的端口,改成上圖修改後的端口號:
<Location "/jenkins">
ProxyPass ajp://localhost:8109/jenkins nocanon
</Location>
更換插件下載資源地址爲國內鏡像資源會大大提高下載速度,更換方式:
修改文件:F:\Bitnami\jenkins-2.190.3-0\apps\jenkins\jenkins_home\updates\default.json,全局替換
http://updates.jenkins-ci.org/download爲https://mirrors.tuna.tsinghua.edu.cn/jenkins。並將www.google.com換成www.baidu.com。
修改完畢後,重新啓動jenkins服務,本地通過http://127.0.0.1訪問jenkins主頁面。可用安裝時,設置的登錄賬號/密碼進行登錄。也可以使用默認管理員賬號admin登錄,admin賬戶初始密碼在
F:\Bitnami\jenkins-2.190.3-0\apps\jenkins\jenkins_home\secrets\initialAdminPassword文件中,複製出來登錄即可。登錄成功,按提示選擇安裝推薦的插件。安裝完成後,可修改初始賬號密碼,並做下面的配置。
2.手動安裝必要插件
Manage Jenkins > Manage Plugins安裝如下插件:
maven項目管理插件:Maven Integration plugin,部署遠端linux服務器插件:Publish Over SSH
3.配置插件的環境參數信息:
操作:Manage Jenkins > Configure System,配置maven全局信息和部署項目的linux服務器信息,並測試和服務器的連通性,提示:success,即爲連接成功。
配置信息:-Dmaven.repo.local=F:\softwaresInstall\MVN_Repository
操作:Manage Jenkins > Global Tool Configuration,安裝JDK,安裝MAVEN,全按照本地的對應環境變量信息配置即可。
4.建立MAVEN新項目,並配置項目的參數信息
a.新建Item > 構建一個maven項目
b.添加描述信息
c.添加項目的git或者svn地址信息
d.添加build信息。着重注意一下紅圈標註的目錄信息,這個跟本地idea或者eclipse的項目代碼存放的workspcae目錄分開,單獨創建一個。因爲每次發佈項目,都會從git或svn上拉取最新版本的代碼到本地的這個目錄進行打包部署,避免操作時覆蓋了workspace裏的未提交代碼。
配置信息:clean compile install package -DiskipTests=true
e.配置post steps信息,如截圖所示即可
啓動腳本命令:sh /root/projects_install/happytimeProject/jenkinsInstall.sh,此命令會在自動部署時,執行遠程linux服務器上的jenkinsInstall.sh腳本命令,執行項目的備份及更新啓動工作。
jenkinsInstall.sh腳本命令如下:
#!/bin/bash
##jenkins安裝包上傳目錄
export JENKINS_POST_PATH=/root/projects_install/jenkins_pre/
##工程安裝目錄
export INSTALL_FILE_PATH=/root/projects_install/happytimeProject/
##安裝包文件名
export APP_NAME=HappyTimeProject-0.0.1-SNAPSHOT.jar
cd ${INSTALL_FILE_PATH}
NEW_FILE="${JENKINS_POST_PATH}${APP_NAME}"
if [ -f "$NEW_FILE" ];
then
echo "pack file exists, deploy and start the server."
#備份原文件
mv ${APP_NAME} ${APP_NAME}_$(date -d today +%Y%m%d_%H%M%S)_bak
#部署新文件
mv -f ${NEW_FILE} ${INSTALL_FILE_PATH}
else
echo "pack file not exists, restart the server."
fi
echo "execute stop.sh shell start ..."
#停止舊版本運行進程
tpid=`ps -ef|grep ${APP_NAME}|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Stop Process...'
kill -15 $tpid
fi
sleep 5
tpid=`ps -ef|grep ${APP_NAME}|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill Process!'
kill -9 $tpid
else
echo 'Stop old version process finish.'
fi
#啓動新版本運行進程
rm -f tpid
nohup /usr/local/jdk/jdk1.8.0_131/bin/java -jar ${APP_NAME} --spring.profiles.active=prod &
echo $! > tpid
sleep 5
echo 'Start new version process Success!'