中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Jenkins實現部署war包和部署jar包的方法

發布時間:2020-10-29 14:56:03 來源:億速云 閱讀:185 作者:Leah 欄目:開發技術

今天就跟大家聊聊有關Jenkins實現部署war包和部署jar包的方法,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

零、配置Tomcat

默認情況下Tomcat是沒有配置用戶角色權限的

Jenkins實現部署war包和部署jar包的方法
Jenkins實現部署war包和部署jar包的方法

但是,后續Jenkins部署項目到Tomcat服務器,需要用到Tomcat的用戶,所以修改tomcat以下配置, 添加用戶及權限

vi /opt/tomcat/conf/tomcat-users.xml
# 內容如下:
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="tomcat" password="tomcat" roles="manager-gui,manager-script,tomcat,admin-gui,admin-script"/> 

用戶和密碼都是:tomcat 注意:為了能夠剛才配置的用戶登錄到Tomcat,還需要修改以下配置

Jenkins實現部署war包和部署jar包的方法

vi /opt/tomcat/webapps/manager/META-INF/context.xml
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
   allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
# 把上面這行注釋掉即可!

Jenkins實現部署war包和部署jar包的方法

重啟Tomcat,訪問測試

Jenkins實現部署war包和部署jar包的方法

輸入 tomcat tomcat

Jenkins實現部署war包和部署jar包的方法

配置Tomcat憑證

Jenkins實現部署war包和部署jar包的方法

一、自由風格項目遠程部署war包

1.創建自由風格項目

Jenkins實現部署war包和部署jar包的方法

2.增加構建步驟

編譯打包

Jenkins實現部署war包和部署jar包的方法

3.增加構建后操作

遠程部署

Jenkins實現部署war包和部署jar包的方法

4.立即構建

Jenkins實現部署war包和部署jar包的方法

5.查看控制臺輸出

Jenkins實現部署war包和部署jar包的方法

二、創建流水線項目遠程部署war包

項目選擇為Pipeline流水線項目

  1. 概念

Pipeline,簡單來說,就是一套運行在 Jenkins 上的工作流框架,將原來獨立運行于單個或者多個節點
的任務連接起來,實現單個任務難以完成的復雜流程編排和可視化的工作。

  1. 使用Pipeline有以下好處(來自翻譯自官方文檔):
     

代碼:Pipeline以代碼的形式實現,通常被檢入源代碼控制,使團隊能夠編輯,審查和迭代其傳送流 程。 持久:無論是計劃內的還是計劃外的服務器重啟,Pipeline都是可恢復的。 可停止:Pipeline可接 收交互式輸入,以確定是否繼續執行Pipeline。 多功能:Pipeline支持現實世界中復雜的持續交付要 求。它支持fork/join、循環執行,并行執行任務的功能。 可擴展:Pipeline插件支持其DSL的自定義擴 展 ,以及與其他插件集成的多個選項。

  1. 如何創建 Jenkins Pipeline呢&#63;
     

Pipeline 腳本是由 Groovy 語言實現的,但是我們沒必要單獨去學習 Groovy
Pipeline 支持兩種語法:Declarative(聲明式)和 Scripted Pipeline(腳本式)語法
Pipeline 也有兩種創建方法:可以直接在 Jenkins 的 Web UI 界面中輸入腳本;也可以通過創建一 個 Jenkinsfile 腳本文件放入項目源碼庫中(一般我們都推薦在 Jenkins 中直接從源代碼控制(SCM) 中直接載入 Jenkinsfile Pipeline 這種方法)。

安裝Pipeline插件 Manage Jenkins->Manage Plugins->可選插件
安裝插件后,創建項目的時候多了“流水線”類型

Jenkins實現部署war包和部署jar包的方法

1.拉取代碼

配置git倉庫,點擊流水線語法

Jenkins實現部署war包和部署jar包的方法

Jenkins實現部署war包和部署jar包的方法

點擊生成流水線腳本

Jenkins實現部署war包和部署jar包的方法

2.構建編譯

pipeline {
 agent any

 stages {
  stage('拉取代碼') {
   steps {
   checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '614e4281-db76-4388-befc-c50588f5e751', url: 'https://gitee.com/L1692312138/ssm_web_war_jenkins.git']]])
   }
  }
  stage('編譯構建') {
   steps {
    sh label: '', script: 'mvn clean package -Dmaven.test.skip=true'
   }
  }
   stage('構建完成') {
   steps {
    echo '構建完成'
   }
  }
  stage('遠程部署') {
   steps {
   deploy adapters: [tomcat8(credentialsId: 'a2672517-c02b-4f62-ab3c-e6f70d08b98e', path: '', url: 'http://wangyitong.club:8080/')], contextPath: null, war: 'target/*.war'
   }
  }
 }
 post {
   always {
    emailext(
    subject: '構建通知:${PROJECT_NAME} - Build # ${BUILD_NUMBER} - ${BUILD_STATUS}!',
    body: '${FILE,path="email.html"}',
    to: '1692312138@qq.com'
    )
   }
 }
}

Jenkins實現部署war包和部署jar包的方法

3.遠程部署

Jenkins實現部署war包和部署jar包的方法

點擊生成流水線腳本

Jenkins實現部署war包和部署jar包的方法

 stage('遠程部署') {
   steps {
   deploy adapters: [tomcat8(credentialsId: 'a2672517-c02b-4f62-ab3c-e6f70d08b98e', path: '', url: 'http://wangyitong.club:8080/')], contextPath: null, war: 'target/*.war'
   }
  }

完整腳本:

pipeline {
 agent any

 stages {
  stage('拉取代碼') {
   steps {
   checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '614e4281-db76-4388-befc-c50588f5e751', url: 'https://gitee.com/L1692312138/ssm_web_war_jenkins.git']]])
   }
  }
  stage('編譯構建') {
   steps {
    sh label: '', script: 'mvn clean package -Dmaven.test.skip=true'
   }
  }
   stage('構建完成') {
   steps {
    echo '構建完成'
   }
  }
  stage('遠程部署') {
   steps {
   deploy adapters: [tomcat8(credentialsId: 'a2672517-c02b-4f62-ab3c-e6f70d08b98e', path: '', url: 'http://wangyitong.club:8080/')], contextPath: null, war: 'target/*.war'
   }
  }
 }
 post {
   always {
    emailext(
    subject: '構建通知:${PROJECT_NAME} - Build # ${BUILD_NUMBER} - ${BUILD_STATUS}!',
    body: '${FILE,path="email.html"}',
    to: '1692312138@qq.com'
    )
   }
 }
}

安裝Pipeline Script from SCM插件
剛才我們都是直接在Jenkins的UI界面編寫Pipeline代碼,這樣不方便腳本維護,建議把Pipeline腳本放
在項目中(一起進行版本控制) 1)在項目根目錄建立Jenkinsfile文件,把內容復制到該文件中

Jenkins實現部署war包和部署jar包的方法

2)在項目中引用該文件

Jenkins實現部署war包和部署jar包的方法

點擊構建 查看控制臺輸出

Jenkins實現部署war包和部署jar包的方法

二、部署jar包

1.創建自由風格項目

流程 :
增加構建后操作步驟,然后配置ssh信息,編寫腳本,然后發包后執行腳本,停止進程,在啟動進程。

2. 安裝Publish Over SSH插件

Publish Over SSH插件

Jenkins實現部署war包和部署jar包的方法

然后配置ssh

Jenkins實現部署war包和部署jar包的方法
Jenkins實現部署war包和部署jar包的方法
Jenkins實現部署war包和部署jar包的方法

3.增加構建步驟 編譯打包

Jenkins實現部署war包和部署jar包的方法

4.增加構建后操作步驟

配置工程 --》增加構建后操作步驟 選擇Sned build artifacts over SSH

Jenkins實現部署war包和部署jar包的方法

Source files 項目構建后的目錄

Remove prefix 去前綴

Remote directoty 發布的目錄

Exec command 發布完執行的命令

Jenkins實現部署war包和部署jar包的方法

5.編寫shell腳本

先通過項目名查找正在運行的項目的端口號,如果存在,則殺死該進程,
然后再次重啟項目。

shell腳本:

#!/bin/env bash

#PID=`ps -ef |grep 項目名稱 |grep -v grep | awk '{print $2}'`
PID=`ps -ef |grep 'wxthepublic-1.0-SNAPSHOT.jar' |grep -v grep | awk '{print $2}'`
if [ ! "$PID" ]
then # 這里判斷TOMCAT進程是否存在
 echo $PID"進程不存在"
else
 echo "進程存在 殺死進程PID$PID"
 kill -9 $PID
fi
nohup java -jar 'wxthepublic-1.0-SNAPSHOT.jar' >/dev/null 2>log &
#根據重啟后是否有當前應用判斷啟動是否成功
pid=$(ps -ef | grep java| grep 'wxthepublic-1.0-SNAPSHOT.jar'|awk -F '[ ]+' '{print $2}')
echo $pid
if [ -z $pid ]
then
 echo "啟動失敗"
 exit 1
else
 echo 'wxthepublic-1.0-SNAPSHOT.jar' : $pid "啟動成功"
fi

6.立即構建

點擊立即構建,查看控制臺輸出

Jenkins實現部署war包和部署jar包的方法

目錄下已經出現打過的jar包。

Jenkins實現部署war包和部署jar包的方法

Jenkins實現部署war包和部署jar包的方法

看完上述內容,你們對Jenkins實現部署war包和部署jar包的方法有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

长沙县| 娱乐| 葵青区| 兴宁市| 图木舒克市| 临漳县| 托克托县| 普兰店市| 霍州市| 深圳市| 高阳县| 正阳县| 弥渡县| 齐齐哈尔市| 米易县| 泊头市| 乌兰察布市| 恩施市| 台江县| 若尔盖县| 新河县| 本溪| 满洲里市| 上栗县| 上杭县| 迁安市| 祁东县| 寿光市| 鹤峰县| 建平县| 承德市| 九龙县| 青田县| 石嘴山市| 临桂县| 休宁县| 班戈县| 乾安县| 方城县| 山阳县| 南昌市|