欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot應(yīng)用的打包和發(fā)布實(shí)現(xiàn)

 更新時(shí)間:2023年04月02日 15:00:43   作者:_kairui  
本文主要介紹了SpringBoot應(yīng)用的打包和發(fā)布實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

1. 創(chuàng)建項(xiàng)目(example-fast)

基于 Spring Boot 創(chuàng)建一個(gè) WEB 項(xiàng)目 example-fast。

2. 編譯打包

2.1 采用 IDEA 集成的 Maven 環(huán)境來(lái)對(duì) Spring Boot 項(xiàng)目編譯打包,可謂是超級(jí) easy

在這里插入圖片描述

2.2 mvn 命令打包

# mvn clean 清理編譯
# install 打包
# -Dmaven.test.skip=true 跳過(guò)單元測(cè)試
# -P dev 指定dev配置

mvn clean install -Dmaven.test.skip=true -P dev

3. 應(yīng)用發(fā)布

3.1 一行命令的演化
運(yùn)行 Spring Boot 打包之后的 jar 方式也簡(jiǎn)單,只需一行命令就行。

java -jar /usr/local/example-fast-1.0.0.jar

此時(shí),服務(wù)是啟動(dòng)了,但是不能關(guān)閉這個(gè)窗口,一旦關(guān)閉服務(wù)就停止了,不得不考慮后臺(tái)運(yùn)行,并且還想看日志;

java -jar /usr/local/example-fast-1.0.0.jar > example-fast.out &

執(zhí)行啟動(dòng)時(shí),效果如下,然后就可以輕松看日志輸出了。

如果項(xiàng)目組中你既是研發(fā)又充當(dāng)運(yùn)維的角色,到這基本就完事兒了,因?yàn)橄嘈磐ㄟ^(guò)熟練操作,會(huì)形成肌肉反應(yīng),你肯定能記住這一行命令。
不過(guò),若是分工明確,生產(chǎn)權(quán)限隔離的話,一般都是運(yùn)維同事來(lái)操作發(fā)布,所以還得想辦法讓運(yùn)維同事省力,不得不考慮腳本化。

首先創(chuàng)建項(xiàng)目目錄例如 example-fast,然后分別創(chuàng)建 bin、lib、logs 目錄;把 example-fast-0.0.1-SNAPSHOT.jar 拷貝至 lib 目錄下;bin 目錄主要存放腳本。創(chuàng)建 start.sh 應(yīng)用啟動(dòng)腳本; stop.sh 應(yīng)用停止腳本

啟動(dòng)腳本(start.sh)

#!/bin/bash

#配置 Java 環(huán)境變量
export JAVA_HOME=/usr/local/java/jdk/jdk1.8.0_231
export PATH=.:$JAVA_HOME/bin:$PATH


#定義應(yīng)用名
App_Name=example-fast

#定義應(yīng)用所在目錄
App_Path=/home/${App_Name}

#定義可執(zhí)行文件的路徑
JAR_PATH=${App_Path}/example-fast-1.0.0.jar

#jvm啟動(dòng)參數(shù)
JAVA_OPTS="-Duser.timezone=GMT+8 -server -Xms4096m -Xmx4096m  -XX:MaxMetaspaceSize=256m -Xloggc:${App_Path}/logs/${App_Name}.gc.log -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=5 -XX:+PrintGC -XX:+PrintGCTimeStamps  -XX:+PrintGCDetails  -XX:+PrintGCApplicationStoppedTime"

#啟動(dòng)JAVA進(jìn)程函數(shù)
CURRENT_COUNT=`ps -ef|grep java |grep ${App_Name} |grep -vc grep`
if [ $CURRENT_COUNT -eq 0 ]
then
        Log_Name=$(echo ${App_Name}|awk  -F"-" '{ print $NF }')
        nohup java -Dfunc_type=${App_Name}  $JAVA_OPTS  -Dfile.encoding=utf-8  -jar  $JAR_PATH  > ${App_Path}/logs/${App_Name}.out  2>&1 &
  PROCESS_ID=`ps -ef | grep  "${App_Name}" |grep -v grep | awk '{ print $2 }'`
      echo " ?????啟動(dòng)應(yīng)用 ${App_Name} 成功,進(jìn)程 id 為 ${PROCESS_ID} ????? "
else
    echo " ????? 應(yīng)用 ${App_Name} 已經(jīng)被啟動(dòng)了 ????? "
fi
# 執(zhí)行應(yīng)用啟動(dòng) start.sh
sh start.sh

停止腳本(stop.sh)

#!/bin/bash

# 定義應(yīng)用名稱(chēng)
App_Name=example-fast

# 停止JAVA進(jìn)程函數(shù)
echo " ????? 開(kāi)始停止 ${App_Name} 應(yīng)用 ????? "
ps -ef | grep ${App_Name} | grep -v grep | awk '{print$2}' | xargs kill
echo " ????? 應(yīng)用 ${App_Name} 停止成功!????? "
# 執(zhí)行應(yīng)用停止 stop.sh
sh stop.sh

至此,Spring Boot 項(xiàng)目最基本的發(fā)布方式就完事了,可以直接執(zhí)行腳本完成項(xiàng)目的啟動(dòng)和停止,操作更簡(jiǎn)單了!更多相關(guān)SpringBoot應(yīng)用打包和發(fā)布內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java由淺入深帶你精通繼承super

    Java由淺入深帶你精通繼承super

    繼承就是子類(lèi)繼承父類(lèi)的特征和行為,使得子類(lèi)對(duì)象(實(shí)例)具有父類(lèi)的實(shí)例域和方法,或子類(lèi)從父類(lèi)繼承方法,使得子類(lèi)具有父類(lèi)相同的行為
    2022-03-03
  • Java多線程之synchronized關(guān)鍵字的使用

    Java多線程之synchronized關(guān)鍵字的使用

    這篇文章主要介紹了Java多線程之synchronized關(guān)鍵字的使用,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • idea 多模塊項(xiàng)目依賴(lài)父工程class找不到問(wèn)題的方法

    idea 多模塊項(xiàng)目依賴(lài)父工程class找不到問(wèn)題的方法

    這篇文章主要介紹了idea 多模塊項(xiàng)目依賴(lài)父工程class找不到問(wèn)題的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • Java程序單實(shí)例運(yùn)行的簡(jiǎn)單實(shí)現(xiàn)

    Java程序單實(shí)例運(yùn)行的簡(jiǎn)單實(shí)現(xiàn)

    這篇文章主要介紹了Java程序單實(shí)例運(yùn)行的簡(jiǎn)單實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 一文帶你搞懂Java中的遞歸

    一文帶你搞懂Java中的遞歸

    這篇文章主要為大家詳細(xì)介紹了Java中的遞歸的實(shí)現(xiàn)以及應(yīng)用,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Java有一定幫助,需要的可以參考一下
    2022-10-10
  • Java8的Lambda和排序

    Java8的Lambda和排序

    這篇文章主要介紹了Java8的Lambda和排序,對(duì)數(shù)組和集合進(jìn)行排序是Java 8 lambda令人驚奇的一個(gè)應(yīng)用,我們可以實(shí)現(xiàn)一個(gè)Comparators來(lái)實(shí)現(xiàn)各種排序,下面文章將有案例詳細(xì)說(shuō)明,想要了解得小伙伴可以參考一下
    2021-11-11
  • Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(12)

    Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(12)

    下面小編就為大家?guī)?lái)一篇Java基礎(chǔ)的幾道練習(xí)題(分享)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧,希望可以幫到你
    2021-07-07
  • 解決SpringBoot整合ElasticSearch遇到的連接問(wèn)題

    解決SpringBoot整合ElasticSearch遇到的連接問(wèn)題

    這篇文章主要介紹了解決SpringBoot整合ElasticSearch遇到的連接問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • resty的緩存技術(shù)設(shè)計(jì)及使用

    resty的緩存技術(shù)設(shè)計(jì)及使用

    這篇文章主要為大家介紹了resty緩存技術(shù)的設(shè)計(jì)及使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-03-03
  • 記一次用IDEA打開(kāi)java項(xiàng)目后不能運(yùn)行的解決方法

    記一次用IDEA打開(kāi)java項(xiàng)目后不能運(yùn)行的解決方法

    這篇文章主要介紹了記一次用IDEA打開(kāi)java項(xiàng)目后不能運(yùn)行的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03

最新評(píng)論