国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Linux使用腳本啟動(dòng)jar/war包(springboot+maven工程jar包)

這篇具有很好參考價(jià)值的文章主要介紹了Linux使用腳本啟動(dòng)jar/war包(springboot+maven工程jar包)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

Linux(CentOS7)使用腳本啟動(dòng)java jar/war包


本文以jar包為例(war包是同樣的操作流程)。


開(kāi)始之前,先準(zhǔn)備一個(gè)jar包

以springboot工程為例。

我打包用的maven。

在pom文件中可以約束最終的jar包名稱:
linux運(yùn)行war,Java,linux,腳本,linux,jar,spring boot
mvn clear 再然后 mvn install 這些都沒(méi)什么好說(shuō)的。


建議以下文件全部放在一個(gè)目錄下

1、部署jar包

通過(guò)xftp或別的方式,將jar包放入服務(wù)器某個(gè)目錄
linux運(yùn)行war,Java,linux,腳本,linux,jar,spring boot

2、準(zhǔn)備application.yml(springboot工程,如果是別的框架請(qǐng)略過(guò)此節(jié))

yml文件放入jar包的同一個(gè)目錄,內(nèi)容是常規(guī)的springboot-yml文件內(nèi)容,注意yml格式:
linux運(yùn)行war,Java,linux,腳本,linux,jar,spring boot

一會(huì)兒?jiǎn)?dòng)的時(shí)候會(huì)以服務(wù)器這個(gè)yml文件配置的內(nèi)容為準(zhǔn)??????
而不是項(xiàng)目中的yml文件??????

linux運(yùn)行war,Java,linux,腳本,linux,jar,spring boot

3、準(zhǔn)備jvm_opt文件(.file文件)

linux運(yùn)行war,Java,linux,腳本,linux,jar,spring boot

此文件內(nèi)容為java虛擬機(jī)啟動(dòng)時(shí)的參數(shù):
linux運(yùn)行war,Java,linux,腳本,linux,jar,spring boot

配置jvm內(nèi)存:一般只改abc這三個(gè)地方:
a = b 并且 c = a*(2/3)
單位:g 或者 m
如果你怕這么配置有啥問(wèn)題,你可以臨時(shí)惡補(bǔ)一下java虛擬機(jī)的知識(shí),反正我這兒好幾個(gè)工具jar包這么配沒(méi)啥問(wèn)題。

VM_OPTIONS="-Xms512m -Xmx512m -Xss256K -Xmn384m -XX:+UseG1GC -XX:G1HeapRegionSize=16m -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=30 -XX:-OmitStackTraceInFastThrow -XX:+AlwaysPreTouch -XX:-UseLargePages -XX:-UseBiasedLocking"

-Xss根據(jù)你的接口或者定時(shí)任務(wù)的每次調(diào)度的數(shù)據(jù)大小,可以適當(dāng)增大一些。

4、準(zhǔn)備腳本

我這兒命名為boot.sh

先上腳本,文章后面會(huì)介紹:怎么用?腳本內(nèi)容的含義?

#!/bin/bash
APP_NAME=$1
YUM_FILE_PATH=$2

[ -r jvm_opt ] && source jvm_opt   ##檢查配置文件存在且可讀,則將其souce
VM_OPT=${VM_OPTIONS:-Xms1g -Xmx1g -Xss256K -Xmn600m -XX:+UseG1GC -XX:G1HeapRegionSize=16m -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=30 -XX:-OmitStackTraceInFastThrow -XX:+AlwaysPreTouch -XX:-UseLargePages -XX:-UseBiasedLocking}

# 提示輸入?yún)?shù)
usage() {
    echo app_name=$APP_NAME vm_opt=$VM_OPT yum=$YUM_FILE_PATH
    echo "Usage: ./boot.sh [APP_NAME] [YML_NAME] [start|stop|restart|status]"
    exit 1
}

# 檢查程序是否在運(yùn)行
is_exist(){
    # 獲取PID
    PID=$(ps -ef |grep ${APP_NAME} | grep -v $0 |grep -v grep |awk '{print $2}')
    # -z "${pid}"判斷pid是否存在,如果不存在返回1,存在返回0
    if [[ -z "${PID}" ]]; then
        # 如果進(jìn)程不存在返回1
	echo "進(jìn)程不存在"
        return 1
    else
        # 進(jìn)程存在返回0
	echo "進(jìn)程存在"
        return 0
    fi
}

# 啟動(dòng)方法
start(){
    is_exist
    if [[ $? -eq "0" ]]; then
        echo "${APP_NAME} is already running, PID=${pid}"
    else
        nohup java -jar $VM_OPT -Dspring.config.location=$YUM_FILE_PATH $APP_NAME >log 2>&1 &
		PID=$(echo $!)
        echo "${APP_NAME} start success, PID=$! YUM_FILE_PATH=${YUM_FILE_PATH}"
    fi
}

# 停止方法
stop(){
    is_exist
    if [[ $? -eq "0" ]]; then
        kill -9 ${PID}
        echo "${APP_NAME} process stop, PID=${PID}"
    else
        echo "There is not the process of ${APP_NAME}"
    fi
}

# 重啟進(jìn)程函數(shù)
restart(){
    stop
	echo "${APP_NAME} 準(zhǔn)備重啟..."
	sleep 5
    start
}

# 查看進(jìn)程狀態(tài)
status(){
    is_exist
    if [[ $? -eq "0" ]]; then
        echo "${APP_NAME} is running, PID=${PID}"
    else
        echo "There is not the process of ${APP_NAME}"
    fi
}

case $3 in
"start")
        start
        ;;
"stop")
        stop
        ;;
"restart")
        restart
        ;;
"status")
       status
        ;;
	*)
	usage
	;;
esac
exit 0

使用腳本

1、先來(lái)到你這幾個(gè)文件的目錄

cd /opt/tools/es-tasks

2、給腳本boot.sh賦予可執(zhí)行權(quán)限:

 chmod 777 boot.sh

777是什么意思?

linux中權(quán)限是用二進(jìn)制表示的。

先看一個(gè)控制臺(tái)的例子:
linux運(yùn)行war,Java,linux,腳本,linux,jar,spring boot
看看這一列,第一個(gè)位置的 - 或者 d 這種文件描述符咱們先不用看,先從第二個(gè)位置的r開(kāi)始看:
一共有9個(gè)位置 rwxrwxrwx 共三組 rwx,分別對(duì)應(yīng)了 三個(gè)角色(擁有者、群組、其他人) 對(duì)這個(gè)文件或文件目錄的權(quán)限。
“r - -” 就是只有【讀】權(quán)限,對(duì)應(yīng)二進(jìn)制的 100
“- w -” 就是只有【寫】權(quán)限,對(duì)應(yīng)二進(jìn)制的 010
“- -x” 就是只有【執(zhí)行】權(quán)限,對(duì)應(yīng)二進(jìn)制的 001
分別翻譯成十進(jìn)制,“r - -” 就是400,"- w -“就是020,”- - x"就是001
那么:

如果是"rw-“就是有【讀、寫】權(quán)限,沒(méi)有【執(zhí)行】權(quán)限,對(duì)應(yīng)的就是420
如果是"r-x"就是有【讀、執(zhí)行】權(quán)限,沒(méi)有【寫】權(quán)限,就是401
如果是”-wx"就是有【寫、執(zhí)行】權(quán)限,沒(méi)有【讀】權(quán)限,對(duì)應(yīng)的就是021(這種設(shè)計(jì)一般不存在,都能改能執(zhí)行了,就不能讀嗎),這里只是說(shuō)明權(quán)限邏輯舉例需要。

所以 “rwx” 就是421,而4+2+1=7(777就是從這來(lái)的),那么 “chmod 777 file” 這個(gè)指令的含義就是:將此文件的【讀、寫、執(zhí)行】權(quán)限賦予給【擁有者、群組、其他人】這些角色。
當(dāng)然:
1、如果你只想將此文件的【讀、寫、執(zhí)行】權(quán)限賦予給【自己】或【自己的群組】,只需要 “chmod 700 file” 或者 “chmod 770 file” 就行。
2、 如果你只想將此文件的【讀、寫】權(quán)限賦予給自己或自己的群組,只需要"chmod 600 file"或者"chmod 660 file"就行了。
3、如果你想讓【自己和自己組】擁有【讀、寫、執(zhí)行】權(quán)限,而【其他人】只能【讀】,只需要"chmod 774 file"。

所謂 linux權(quán)限,就這么簡(jiǎn)單。至于用戶和用戶組,也很簡(jiǎn)單,閣下可自行查閱其他資料學(xué)習(xí),我就不贅述了。

請(qǐng)跟隨我回到主題(這篇文章講啥來(lái)著?看看標(biāo)題,咱們繼續(xù))

3、執(zhí)行命令

啟動(dòng)

./boot.sh xxx.jar application.yml start

停止

./boot.sh xxx.jar application.yml stop

重啟

./boot.sh xxx.jar application.yml restart

查看是否在運(yùn)行

./boot.sh xxx.jar application.yml status

腳本說(shuō)明(老鳥(niǎo)可以略過(guò)這一節(jié))

1、第一句

#!/bin/bash

寫在 .sh 腳本文件最開(kāi)頭第一行。
這個(gè)是必須要寫的,linux系統(tǒng)不同的話,寫法上可能會(huì)有一丟丟區(qū)別,我這里是CentOS7。

2、第二句

APP_NAME=$1
YUM_FILE_PATH=$2

聲明了兩個(gè)變量,指向 $1 和 $2。
$1 對(duì)應(yīng)的是咱們啟動(dòng)命令的:

./boot.sh xxx.jar application.yml start/stop/restart/status

其中的xxx.jar這一部分。
bash解釋器是按照空格進(jìn)行命令的切割,而 xxx.jar 在第【1】位置,所以是$1 (第【0】位置是 ./boot)。
$2同理。
這兩句話的意思就是,聲明這倆變量,并且讓APP_NAME=xxx.jar,讓YUM_FILE_PATH=application.yml

3、第三句和第四句

[ -r jvm_opt ] && source jvm_opt

檢查這個(gè)jvm_opt文件,如果存在并且可讀,就把它的內(nèi)容加載進(jìn)來(lái)。

VM_OPT=${VM_OPTIONS:-Xms1g -Xmx1g -Xss256K -Xmn600m -XX:+UseG1GC -XX:G1HeapRegionSize=16m -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=30 -XX:-OmitStackTraceInFastThrow -XX:+AlwaysPreTouch -XX:-UseLargePages -XX:-UseBiasedLocking}

聲明一個(gè)VM_OPT變量,讓它等于后面這個(gè)${VM_OPTIONS : …},這里面的VM_OPTIONS就是從jvm_opt文件中取出來(lái)的變量。
意思是:如果取到了,就讓VM_OPT=VM_OPTIONS,如果沒(méi)取到,就讓VM_OPT等于冒號(hào)后面的這一長(zhǎng)串值。

4、接下來(lái)就是六個(gè)自定義方法(也叫函數(shù))

第一個(gè)方法,用于提示
usage() {
    echo app_name=$APP_NAME vm_opt=$VM_OPT yum=$YUM_FILE_PATH
    echo "Usage: ./boot.sh [APP_NAME] [YML_NAME] [start|stop|restart|status]"
    exit 1
}

此方法在腳本被非正常執(zhí)行時(shí)觸發(fā),比如說(shuō)你./boot.sh start就想執(zhí)行,xxx.jar也不寫
那它就提示你 “Usage: ./boot.sh [APP_NAME] [YML_NAME] [start|stop|restart|status]” 一個(gè)正常命令格式是什么。

第二個(gè)方法,用于判斷是否已經(jīng)在運(yùn)行
is_exist(){
    # 獲取PID
    PID=$(ps -ef |grep ${APP_NAME} | grep -v $0 |grep -v grep |awk '{print $2}')
    # -z "${pid}"判斷pid是否存在,如果不存在返回1,存在返回0
    if [[ -z "${PID}" ]]; then
        # 如果進(jìn)程不存在返回1
        echo "進(jìn)程不存在"
        return 1
    else
        # 進(jìn)程存在返回0
        echo "進(jìn)程存在"
        return 0
    fi
}
第三個(gè)方法,用于啟動(dòng)jar包
start(){
    is_exist
    if [[ $? -eq "0" ]]; then
        echo "${APP_NAME} is already running, PID=${pid}"
    else
        nohup java -jar $VM_OPT -Dspring.config.location=$YUM_FILE_PATH $APP_NAME >log 2>&1 &
                PID=$(echo $!)
        echo "${APP_NAME} start success, PID=$! YUM_FILE_PATH=${YUM_FILE_PATH}"
    fi
}

其中,"is_exist"是調(diào)用了上面講的第二個(gè)方法。
然后拿著 is_exist() 方法運(yùn)行的結(jié)果(0或者1)來(lái)決定要不要啟動(dòng)。
這一段腳本總體意思也很簡(jiǎn)單,判斷進(jìn)程是否已經(jīng)存在,如果存在就提示;不存在就靜默啟動(dòng),啟動(dòng)完了提示success。

其中:

nohup java -jar $VM_OPT -Dspring.config.location=$YUM_FILE_PATH $APP_NAME >log 2>&1 &

這一段就是在啟動(dòng)了。 “>” 代表輸出,log代表同級(jí)目錄下的日志文件log.file,如果啟動(dòng)后log文件不存在則會(huì)自動(dòng)創(chuàng)建。
">log"意思是把程序的輸出內(nèi)容寫到log這個(gè)文件中去。

順便提一嘴奧

一個(gè) > 號(hào) “>”
會(huì)把之前的覆蓋掉,也就是說(shuō),每次重啟jar包,之前l(fā)og中的內(nèi)容就沒(méi)了。
好處也很明顯,不會(huì)造成文件膨脹,排查本次啟動(dòng)后問(wèn)題時(shí)也會(huì)很方便。

兩個(gè) > 號(hào) “>>”
在之前的文件內(nèi)容的基礎(chǔ)上,不斷追加新的內(nèi)容。

我springboot工程一般都用到日志框架,這些框架會(huì)把日志,按日期寫入某個(gè)文件夾內(nèi)的一個(gè)個(gè)文件中去,所以我一般腳本這個(gè)位置寫 一個(gè)">“符號(hào),也就是”>log"

繼續(xù)看這段腳本:

nohup java -jar $VM_OPT -Dspring.config.location=$YUM_FILE_PATH $APP_NAME >log 2>&1 &

“2>&1” 意思是 把程序的 標(biāo)準(zhǔn)錯(cuò)誤輸出 也重定向到 標(biāo)準(zhǔn)輸出。

在linux中,標(biāo)準(zhǔn)輸入用0表示,標(biāo)準(zhǔn)輸出用1表示,標(biāo)準(zhǔn)錯(cuò)誤輸出用2表示。

最后一個(gè) “&” 代表靜默啟動(dòng),“別占用我控制臺(tái)一直打印” 就這個(gè)意思。

第四個(gè)方法,用于停止jar包
stop(){
    is_exist
    if [[ $? -eq "0" ]]; then
        kill -9 ${PID}
        echo "${APP_NAME} process stop, PID=${PID}"
    else
        echo "There is not the process of ${APP_NAME}"
    fi
}

非常好理解:進(jìn)程存在否?存在就殺掉進(jìn)程然后提示;不存在就直接提示。

第五個(gè)方法,用于重啟jar包
restart(){
    stop
        echo "${APP_NAME} 準(zhǔn)備重啟..."
        sleep 5
    start
}

也很好理解:先停止,睡5秒,再啟動(dòng)。

第六個(gè)方法,查看運(yùn)行狀態(tài)
status(){
    is_exist
    if [[ $? -eq "0" ]]; then
        echo "${APP_NAME} is running, PID=${PID}"
    else
        echo "There is not the process of ${APP_NAME}"
    fi
}

這個(gè)就不用說(shuō)了,只是調(diào)用了一下 is_exist() 方法然后根據(jù)0或1的返回,給我們提示運(yùn)行狀態(tài)而已。

腳本的最后一段

case $3 in
"start")
        start
        ;;
"stop")
        stop
        ;;
"restart")
        restart
        ;;
"status")
       status
        ;;
        *)
        usage
        ;;
esac
exit 0

前面講過(guò),$3就是咱們啟動(dòng)命令:

./boot.sh xxx.jar application start/stop/restart/status

其中的 start / stop / restart / status 這個(gè)部分。

腳本根據(jù)我們輸入的其中一個(gè)選項(xiàng),執(zhí)行不同的方法。

" *)usage ;; " 的意思是我們輸入的東西不在【start / stop / restart / status】這個(gè)范圍內(nèi),就會(huì)走 usage() 方法,也就是提示我們正常的格式。

“esac” 就是 “case” 反過(guò)來(lái)寫,是腳本中的一種語(yǔ)法,類似于【 " if " 與 " fi "】。

“exit 0” 意思是運(yùn)行正常退出腳本程序。

jar包運(yùn)行后的log日志怎么看?

我一般用這幾個(gè)命令

1、實(shí)時(shí)查看100行日志

tail -100f log

2、搜索日志中內(nèi)容

more log

然后敲 “/”
再然后輸入你要搜索的內(nèi)容,回車。
如果輸入錯(cuò)了,按 ctrl + backspace(退格) 往前刪。

寫在最后

簡(jiǎn)單好用,相當(dāng)于一個(gè)雛形,支持高度diy。
但是要小心,別在腳本中寫自己拿不準(zhǔn)的指令。

diy舉例

比如說(shuō)你就想用springboot工程resources下的那個(gè)yml配置,不愿意把它提取出來(lái),腳本改起來(lái)也很簡(jiǎn)單,只要找到 $, 把 $ 后面的數(shù)字改成你命令中對(duì)應(yīng)的位置就ok。
比如:

vi boot.sh

先刪掉 YUM_FILE_PATH=$2 這個(gè)變量(所有引用到這個(gè)變量的地方也給改改好奧)
把腳本最后的

case $3 in …

其中的$3

改成你 start/stop/restart/status 這個(gè)指令的位置

假如說(shuō)你指令是這么寫的:

./boot.sh xxx.jar start

那就把./boot.sh腳本中的所有 $3 改成 $2。
很明顯嘛,你變短了,數(shù)字也就變少了。

話說(shuō)回來(lái),稍微有點(diǎn)規(guī)模的項(xiàng)目一般也用不著這玩意,docker、k8s集群部署會(huì)更省心。
就有時(shí)候一些工具類的小玩意用一下還是蠻不錯(cuò)的。


ok,完活!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-700888.html

到了這里,關(guān)于Linux使用腳本啟動(dòng)jar/war包(springboot+maven工程jar包)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • SpringBoot項(xiàng)目(jar)部署,啟動(dòng)腳本

    SpringBoot項(xiàng)目(jar)部署,啟動(dòng)腳本

    SpringBoot項(xiàng)目(jar)部署,需要先關(guān)閉原來(lái)啟動(dòng)的項(xiàng)目,再啟動(dòng)新的項(xiàng)目。直接輸入命令,費(fèi)時(shí)費(fèi)力,還容易出錯(cuò)。所以,使用腳本啟動(dòng)。 腳本名: start.sh 此腳本需要放置在jar包的同級(jí)目錄,才能正確找到j(luò)ar包。 在腳本所在目錄,執(zhí)行如下命令: 一開(kāi)始,我在給pid賦值時(shí),

    2024年02月10日
    瀏覽(16)
  • 【Jenkins】使用java -jar jenkins.war --httpPort=XXXX啟動(dòng)Jenkins報(bào)錯(cuò)【解決方案】

    【Jenkins】使用java -jar jenkins.war --httpPort=XXXX啟動(dòng)Jenkins報(bào)錯(cuò)【解決方案】

    ??歡迎關(guān)注博主【米碼收割機(jī)】 ??一起學(xué)習(xí)C++、Python主流編程語(yǔ)言。 ??機(jī)器人、人工智能等相關(guān)領(lǐng)域開(kāi)發(fā)技術(shù)。 ??主流開(kāi)發(fā)、測(cè)試技能。 在cmd中,執(zhí)行啟動(dòng)命令行: 報(bào)錯(cuò)信息如下: 5月 06, 2023 4:55:49 下午 Main verifyJavaVersion 嚴(yán)重: Running with Java class version 63 which is not in th

    2024年02月07日
    瀏覽(27)
  • Maven的三種項(xiàng)目打包方式——pom,jar,war的區(qū)別

    記錄一次項(xiàng)目啟動(dòng)失敗,發(fā)現(xiàn)Could not resolve dependencies for project的錯(cuò)誤,原因是我的子模塊的打包方式是pom 是怎么發(fā)現(xiàn),因?yàn)槲沂菑母改K打包的,但是發(fā)現(xiàn)我這個(gè)子模塊找不到,我發(fā)現(xiàn)父子模塊依賴關(guān)系也沒(méi)錯(cuò)啊,我就單獨(dú)打包這個(gè)子模塊,結(jié)果沒(méi)有錯(cuò)誤,但是沒(méi)生成targe

    2024年02月12日
    瀏覽(18)
  • Linux??jar包自啟動(dòng)腳本(親測(cè)有效)

    在Linux服務(wù)器上設(shè)置開(kāi)機(jī)啟動(dòng)jar包,服務(wù)器重啟時(shí)就會(huì)自動(dòng)運(yùn)行項(xiàng)目,實(shí)現(xiàn)半自動(dòng)化,實(shí)現(xiàn)思路如下。 方法一: 1、在jar包同級(jí)目錄下創(chuàng)建執(zhí)行腳本 2、自啟動(dòng)腳本文件保存后退出(按Esc鍵??:wq),文件授權(quán) 3、修改/etc/rc.d/rc.local 4、重啟測(cè)試 5、待服務(wù)器重啟后通過(guò)命令查看

    2024年02月21日
    瀏覽(12)
  • SpringBoot 插件 spring-boot-maven-plugin 原理,以及SpringBoo工程部署的 jar 包瘦身實(shí)戰(zhàn)

    SpringBoot 插件 spring-boot-maven-plugin 原理,以及SpringBoo工程部署的 jar 包瘦身實(shí)戰(zhàn)

    我們直接使用 maven package (maven自帶的package打包功能),打包Jar包的時(shí)候,不會(huì)將該項(xiàng)目所依賴的Jar包一起打進(jìn)去,在使用 java -jar 命令啟動(dòng)項(xiàng)目時(shí)會(huì)報(bào)錯(cuò),項(xiàng)目無(wú)法正常啟動(dòng)。這個(gè)時(shí)候,我們就可以考慮引用 spring-boot-maven-plugin 插件來(lái)為項(xiàng)目打Jar包。 maven項(xiàng)目的pom.xml中,添

    2024年02月06日
    瀏覽(24)
  • springboot項(xiàng)目打包jar和war有什么區(qū)別

    Spring Boot 項(xiàng)目可以打包成可執(zhí)行的 JAR(Java Archive) 文件或 WAR(Web Archive) 文件,兩者之間有一些區(qū)別: JAR 文件是一種常見(jiàn)的Java歸檔文件格式,它包含了項(xiàng)目的所有代碼、依賴項(xiàng)和資源文件。 Spring Boot 的JAR包是可執(zhí)行的,可以通過(guò) java -jar 命令直接運(yùn)行。這種方式下,Spr

    2024年01月25日
    瀏覽(22)
  • SpringBoot項(xiàng)目的兩種發(fā)布方式(jar包和war包)

    SpringBoot項(xiàng)目的兩種發(fā)布方式(jar包和war包)

    1.1、在pom.xml中添加一個(gè)SpringBoot的構(gòu)建的插件 1.2、在maven視圖中,雙擊“package”,在target中會(huì)產(chǎn)生xxx.jar包 1.3、將生成的jar包復(fù)制到任意文件夾中,通過(guò)java -jar 命令運(yùn)行該jar包 瀏覽器訪問(wèn)結(jié)果如下: 2.1、在pom.xml文件中將jar修改為war 2.2、設(shè)置tomcat啟動(dòng)器依賴范圍 2.3、設(shè)置war包

    2024年01月17日
    瀏覽(26)
  • Linux 部署Java項(xiàng)目-jar包和war包(五)

    Linux 部署Java項(xiàng)目-jar包和war包(五)

    部署之前先說(shuō)下兩種包,java項(xiàng)目部署到服務(wù)器一般有用war包的,也有用jar包的,微服務(wù)spring-cloud普及后大部分打包都是jar,部署之前先搞清楚自己要打war包還是jar包,下面小介紹兩種包的區(qū)別: spring boot既可以打成war發(fā)布,也可以打成jar包發(fā)布。說(shuō)一下區(qū)別: jar包: 直接通

    2024年02月04日
    瀏覽(24)
  • SpringBoot學(xué)習(xí)——項(xiàng)目用maven打包成jar包 & windows + Linux平臺(tái)運(yùn)行 & Linux安裝java & 遇到的問(wèn)題

    SpringBoot學(xué)習(xí)——項(xiàng)目用maven打包成jar包 & windows + Linux平臺(tái)運(yùn)行 & Linux安裝java & 遇到的問(wèn)題

    1.maven打包springboot項(xiàng)目,jar包; 2.windows安裝java環(huán)境,以及運(yùn)行jar包; 3.Linux安裝java環(huán)境,以及運(yùn)行jar包; 4.運(yùn)行jar包template might not exist報(bào)錯(cuò)及解決; Maven 構(gòu)建生命周期定義了一個(gè)項(xiàng)目構(gòu)建跟發(fā)布的過(guò)程。 一個(gè)典型的 Maven 構(gòu)建(build)生命周期是由以下幾個(gè)階段的序列組成的

    2024年02月16日
    瀏覽(105)
  • SpringBoot打包成WAR包的時(shí)候把第三方j(luò)ar包打到LIB文件夾下和把第三方j(luò)ar包打入到SpringBoot jar包中

    SpringBoot打包成WAR包的時(shí)候把第三方j(luò)ar包打到LIB文件夾下和把第三方j(luò)ar包打入到SpringBoot jar包中

    轉(zhuǎn)載 首先我們應(yīng)該知道我們把 SPRINGBOOT 項(xiàng)目打包成WAR包和JAR包的時(shí)候分別需要何種插件 我們最常用的把 springBoot 打成jar包的插件是下面這樣的一個(gè)插件,這是把我們的 springBoot 項(xiàng)目打包成為一個(gè)可執(zhí)行 jar 的插件 把 springBoot 項(xiàng)目打包成一個(gè)war包的插件是下面這樣的一個(gè)插件

    2024年02月07日
    瀏覽(23)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包