Jenkins與Git持續集成&&Linux上遠程部署Java項目


一、環境搭建

1、安裝所需軟件

  • Jdk
  • Maven
  • Jenkins
  • Tomcat
  • Xshell
  • git

以上軟件去官網下載,比較簡單,不一一描述了

2、安裝所需的jenkins插件

  • Git plugin
  • GitHub plugin      git插件,download代碼至本地
  • Mailer Plugin       郵件插件
  • Publish Over SSH     遠程訪問Linux服務器插件

打開jenkins—》系統管理—》管理插件—》可選插件,輸入要下載的插件,勾選直接安裝,安裝完成頁面勾選重啟,插件安裝成功

 

 

3、配置jdk\maven\tomcat環境變量

      路徑:我的電腦---》屬性—》高級系統設置—》環境變量

  • Jdk環境變量配置

JAVA_HOME: C:\Program Files\Java\jdk1.8.0

CLASSPATH: .; %JAVA_HOME%\lib\dt.jar; %JAVA_HOME%\lib\tools.jar

PATH: %JAVA_HOME%\bin; %JAVA_HOME%\jre\bin

  • Maven環境變量配置

M2_HOME: C:\maven

MAVEN_OPTS: -Xms256m -Xmx512m

PATH: %M2_HOME%\bin

  • Tomcat環境變量配置

CATALINA_BASE:c:\tomcat

CATALINA_HOME: c:\tomcat

CLASSPATH : %CATALINA_HOME%\common\lib\servlet.jar

PATH: %CATALINA_HOME%\bin; %CATALINA_HOME%\lib

  •  Linux環境變量配置

修改etc/profile文件,文件末尾添加

# jdk1.8 settings

JAVA_HOME=/usr/java/jdk1.8.0_51

JRE_HOME=$JAVA_HOME/jre

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

export JAVA_HOME JRE_HOME PATH CLASSPATH

#tomcat settings

CATALINA_HOME=/usr/local/tomcat

CATALINA_BASE=/usr/local/tomcat

export CATALINA_HOME CATALINA_BASE

保存,執行source /etc/profile生效

然后在tomcat/bin/目錄下創建setenv.sh文件,文件內容如下

#!/bin/bash

CATALINA_HOME=/usr/local/tomcat

CATALINA_PID=$CATALINA_HOME/bin/CATALINA_PID

ID=`ps -ef | grep java | grep tomcat|awk '{print $2}'`

    echo $ID 

    for id in $ID 

    do 

     echo $id > $CATALINA_PID      

    done  

       

JAVA_OPTS=`-Xms512m -Xmx1024m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=1024m`

JAVA_HOME=/usr/java/jdk1.8.0_51 

JRE_HOME=/usr/java/jdk1.8.0_51/jre

在tomcat/bin目錄下創建CATALINA_PID文件

把setenv.sh文件內容copy至/bin/catalina.sh文件

Linux環境變量配置是為解決后面執行shell腳本時重啟tomcat報錯

 

4、修改maven配置文件,修改版本庫地址和jdk版本

修改配置文件:maven—>conf-->settings.xml

jdk默認是被注釋的,放開后,修改為當前安裝的jdk版本,否則構建時會報錯

 

 

創建maven版本庫地址,然后在settings.xml中添加版本庫地址

添加<localRepository>D:/repository</localRepository>一行代碼,如圖

 

 

5、配置遠程tomcat站點,創建站點文件夾(存放war包)

   修改tomcat下server.xml文件

 

二、構建java項目

1、設置jenkins全局變量

   打開jenkins,進入系統管理,

l  Maven\JDK\git安裝目錄,如圖

 

 

 

 

 

l  配置郵件通知,此處的郵件地址要跟管理員一樣,勾選發送郵件測試配置,輸入收件人地址,若配置成功,會收到測試郵件

 

 

l  選擇要發布的具體位置,輸入以下內容后,點擊test configuration,驗證是否連接成功

SSH Server Name: 遠程連接名字,隨便起

HostName:遠程主機ip

Usename:遠程登錄名

Remote Directory:發布遠程目錄

Passphrase/Password: 遠程登錄密碼

 

 

2、創建maven項目,修改配置項

l  新建job,選擇構建一個maven項目

 

 

l  配置job

  • 源碼管理:輸入git地址

 

 

  • 構建觸發器:勾選Build whenever a SNAPSHOT dependency is built,建立快照依賴關系

 

 

  • 構建文件:構建pom文件(pom相對路徑,Jenkins識別路徑至workspace)+構建命令clean install -P test/-P pro

 

 

  • 遠程發布信息:

 

 

  • 設置發送郵件通知,構建不穩定時和構建失敗時發送郵件通知

              

 

三、編寫腳本並發布

1、編寫shell腳本,腳本上傳至遠程機器

#!/bin/bash
export LANG="en_US.UTF-8"
PROJECT=admin
BACK_DIR=/usr/local/autodeploy/back/$PROJECT
TEMP_DIR=/usr/local/autodeploy/temp/$PROJECT
TOMCAT_HOME=/usr/local/tomcat
WEBAPPS=webapps_jfadmin
if [ -f $TEMP_DIR/$PROJECT.war ]; then
    echo "=======If temp exists war,finding tomcat PID======"
     #shutdown tomcat
     #echo "===================killing tomcat================="
     #$TOMCAT_HOME/bin/shutdown.sh
     #ID=`ps -ef | grep java | grep tomcat|awk '{print $2}'`
    #echo $ID  
    #for id in $ID  
    #do  
     #kill -9 $id  
      #echo "killed$id"       
    #done  
    #echo "===================killed tomcat==================="
#sleep3
    if [ -f $TOMCAT_HOME/$WEBAPPS/$PROJECT.war ]; then
    echo "[INFO] If /usr/local/tomcat/webapps_jfadmin/admin.war exists,it will delete old war and its folder"
        echo "===================deleteing old war ================="
        rm -rf $TOMCAT_HOME/$WEBAPPS/$PROJECT.war
        rm -rf $TOMCAT_HOME/$WEBAPPS/$PROJECT
    else
        echo "===================old war not exits==================="
    fi
     
     echo "Copying /usr/local/autodeploy/temp/admin.war to /usr/local/autodeploy/tomcat/webapps_jfadmin"
     #echo "===================copying new war==================="
     cp $TEMP_DIR/$PROJECT.war $TOMCAT_HOME/$WEBAPPS/$PROJECT.war
 
    echo "===================backing war==================="
    echo "Creating the back folder "
    mkdir -p $BACK_DIR
    echo "Backing /usr/local/autodeploy/tomcat/webapps_jfadmin/admin.war to /usr/local/autodeploy/back/admin,and named by date"
    cp $TOMCAT_HOME/$WEBAPPS/$PROJECT.war $BACK_DIR/"$PROJECT"_`date +%Y%m%d%H%M%S`.war
 
    #echo "===================deleteing temp file==================="
    echo "Deleting /usr/local/autodeploy/temp/admin/admin.war"
    rm -rf $TEMP_DIR/$PROJECT.war
    #start tomcat
    #echo "===================starting tomcat==================="
     #$TOMCAT_HOME/bin/startup.sh
    echo "===================finished==========================!"
else
     echo "===================temp file not exits==================="
fi

 

 

2、發布

  進入jobs列表,點擊構建即可

 

 

 

構建成功,如下圖所示

 

 

四、附屬

4.1 Jenkins部署流程圖

     


免責聲明!

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



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