Jenkins入門(二)本地部署Java項目


目的:在同一台服務器上用Jenkins+git+maven自動化構建部署Java項目

1、環境准備

一台服務器上搭建有:

  1. tomcat
  2. Java
  3. git
  4. maven
  5. jenkins

2、在jenkins上新建項目

1

填入項目名

2

隨便填寫寫描述;

點擊git,在 Repository URL中填入github項目,我這里填的是阿良老師的一個Java demo項目:https://github.com/lizhenliang/tomcat-java-demo.git

3

4

在底部的Excuse shell寫入

#!/bin/bash
sh -x /opt/jenkins-tomcat.sh

5

3、編寫shell腳本

在opt/中新建一個shell腳本,並修改對應自己服務器的變量值

vim /opt/jenkins-tomcat.sh

#!/bin/bash
#需要 root權限 git maven /data/backup

#備份文件后綴
DATE=$(date +%F_%T)
#tomcat目錄名
TOMCAT_NAME=tomcat8.0
#tomcat完整路徑
TOMCAT_DIR=/usr/local/$TOMCAT_NAME
#tomcat  ROOT路徑
ROOT=${TOMCAT_DIR}/webapps/ROOT

#備份存放路徑
BACKUP_DIR=/data/backup
#jenkins存放git拉取代碼的路徑
WORK_DIR=/var/lib/jenkins/workspace
#項目名
PROJECT_NAME=Java-test
#maven的家目錄
MAVEN_HOME=/usr/local/maven3.6

#防止jenkins默認shell執行完后,終止其子進程
BUILD_ID=DONTKILLME

#構建
cd ${WORK_DIR}/${PROJECT_NAME}
${MAVEN_HOME}/bin/mvn clean
if [ $? -ne 0 ]; then
  echo "maven bauid failure!"
  exit 1
fi
${MAVEN_HOME}/bin/mvn package
if [ $? -ne 0 ]; then
  echo "maven bauid failure!"
  exit 1
fi


#部署
TOMCAT_PID=$(ps -ef|grep "$TOMCAT_NAME"|egrep -v "grep|$0" |awk 'NR==1{print $2}' )
#ps $TOMCAT_PID
[ $TOMCAT_PID!="" ] && kill -9 $TOMCAT_PID
#[ $TOMCAT_PID!="" ] && $TOMCAT_DIR/bin/shutdown.sh

[ -d $ROOT ]&& mv $ROOT $BACKUP_DIR/${TOMCAT_NAME}_ROOT$DATE
cp -f  $WORK_DIR/$PROJECT_NAME/target/*.war   ${ROOT}.war
$TOMCAT_DIR/bin/startup.sh


TOMCAT_NEW_PID=$(ps -ef|grep "$TOMCAT_NAME"|egrep -v "grep|$$" |awk 'NR==1{print $2}' )
echo "啟動成功,tomcat pid:${TOMCAT_NEW_PID}"
~                                                   

建立備份目錄

mkdir -p /data/backup

4、配置

4.1、配置jenkins的Java路徑

6

填入你服務器上的Java安裝路徑,然后保存

7

4.2、修改jenkins執行用戶

為了防止執行shell的時候出現“權限不足”的情況,所以把jenkins的執行用戶改成root

vim /etc/sysconfig/jenkins 

#把JENKINS_USER的值還成root
JENKINS_USER="root"

5、執行Java-demo項目

8

點擊你的項目名

9

執行構建后,進入控制台

10

出現下面兩句就是構建成功了,如果構建失敗,也會把報錯打印出來

11

訪問tomcat網站頁面

12

(完)

5、BUG記錄:

BUG1::執行mvn報錯沒有找到jdk

解決:在系統設置—>全局工具配置—>設置Java的家目錄

BUG2:執行shell的時候權限不足

解決1:修改jenkins服務的默認用戶為root

解決2:根據具體情況賦予部分權限給jenkins

BUG3:在構建時,tomcat提起來了,構建完成后tomcat卻又沒提起來

分析:jenkins用shell構建完成后,其子進程也隨之被銷毀

解決1:后台啟動tomcat

nohup sh /usr/local/tomcat8.0/bin/startup.sh &

解決2:在腳本前面加入

BUILD_ID=DONTKILLME

BUG4:構建成功卻報錯

Build step 'Execute shell' marked build as failure
Finished: FAILURE

解決:檢查代碼,看是否有語法錯誤


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM