Springboot jar文件如何打包zip在linux環(huán)境運(yùn)行
這篇文章主要介紹了Springboot jar文件如何打包zip在linux環(huán)境運(yùn)行,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
1.添加打包配置文件
1.1 assembly.xml
<assembly
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
<id>bin</id>
<formats>
<format>zip</format>
</formats>
<dependencySets>
<dependencySet>
<useProjectArtifact>true</useProjectArtifact>
<outputDirectory>lib</outputDirectory>
</dependencySet>
</dependencySets>
<fileSets>
<fileSet>
<directory>${project.build.directory}/bin</directory>
<outputDirectory>/bin</outputDirectory>
<fileMode>0777</fileMode>
</fileSet>
<fileSet>
<directory>${project.build.directory}/conf</directory>
<outputDirectory>/conf</outputDirectory>
<fileMode>0644</fileMode>
</fileSet>
</fileSets>
</assembly>
1.2 serverStatus.sh
#!/bin/sh
if [ ! -n "$JAVA_HOME" ]; then
export JAVA_HOME="/export/server/jdk1.8.0_141"
fi
APP_MAIN=${application.main.class}
PID=0
getPID(){
javaps=`$JAVA_HOME/bin/jps -l | grep $APP_MAIN`
if [ -n "$javaps" ]; then
PID=`echo $javaps | awk '{print $1}'`
else
PID=0
fi
}
getServerStatus(){
getPID
echo "================================================================================================================"
if [ $PID -ne 0 ]; then
echo "$APP_MAIN is running(PID=$PID)"
echo "================================================================================================================"
else
echo "$APP_MAIN is not running"
echo "================================================================================================================"
fi
}
getServerStatus
1.3 shutdown.sh
#!/bin/sh
if [ ! -n "$JAVA_HOME" ]; then
export JAVA_HOME="/export/server/jdk1.8.0_141"
fi
APP_MAIN=${application.main.class}
PID=0
getPID(){
javaps=`$JAVA_HOME/bin/jps -l | grep $APP_MAIN`
if [ -n "$javaps" ]; then
PID=`echo $javaps | awk '{print $1}'`
else
PID=0
fi
}
shutdown(){
getPID
echo "================================================================================================================"
if [ $PID -ne 0 ]; then
echo -n "Stopping $APP_MAIN(PID=$PID)..."
kill -9 $PID
if [ $? -eq 0 ]; then
echo "[Success]"
echo "================================================================================================================"
else
echo "[Failed]"
echo "================================================================================================================"
fi
getPID
if [ $PID -ne 0 ]; then
shutdown
fi
else
echo "$APP_MAIN is not running"
echo "================================================================================================================"
fi
}
shutdown
1.4 startup.sh
#!/bin/sh
#-------------------------------------------------------------------------------------------------------------
#該腳本的使用方式為-->[sh startup.sh]
#該腳本可在服務(wù)器上的任意目錄下執(zhí)行,不會(huì)影響到日志的輸出位置等
#-------------------------------------------------------------------------------------------------------------
if [ ! -n "$JAVA_HOME" ]; then
export JAVA_HOME="/export/server/jdk1.8.0_141"
fi
#-------------------------------------------------------------------------------------------------------------
# 系統(tǒng)運(yùn)行參數(shù)
#-------------------------------------------------------------------------------------------------------------
DIR=$(cd "$(dirname "$0")"; pwd)
APP_HOME=${DIR}/..
CLASSPATH=$APP_HOME/conf
APP_LOG=${APP_HOME}/logs
APP_CONFIG=${APP_HOME}/conf/application.yml
APP_MAIN=${application.main.class}
JAVA_OPTS="$JAVA_OPTS -server -Xms512m -Xmx512m -Xmn128m -XX:ParallelGCThreads=20 -XX:+UseConcMarkSweepGC -XX:MaxGCPauseMillis=850 -XX:+PrintGCDetails -Xloggc:$APP_LOG/gc.log -Dfile.encoding=UTF-8"
JAVA_OPTS="$JAVA_OPTS -DlogPath=$APP_LOG"
JAVA_OPTS="$JAVA_OPTS -Dconf.config=file:${APP_CONFIG}"
echo "JAVA_HOME="$JAVA_HOME
echo "CLASSPATH="$CLASSPATH
echo "JAVA_OPTS="$JAVA_OPTS
#-------------------------------------------------------------------------------------------------------------
# 程序開始
#-------------------------------------------------------------------------------------------------------------
for appJar in "$APP_HOME"/lib/*.jar;
do
CLASSPATH="$CLASSPATH":"$appJar"
done
PID=0
getPID(){
javaps=`$JAVA_HOME/bin/jps -l | grep $APP_MAIN`
if [ -n "$javaps" ]; then
PID=`echo $javaps | awk '{print $1}'`
else
PID=0
fi
}
startup(){
getPID
echo "================================================================================================================"
if [ $PID -ne 0 ]; then
echo "$APP_MAIN already started(PID=$PID)"
echo "================================================================================================================"
else
echo -n "Starting $APP_MAIN"
if [ ! -d "$APP_LOG" ]; then
mkdir "$APP_LOG"
fi
nohup $JAVA_HOME/bin/java $JAVA_OPTS -classpath $CLASSPATH $APP_MAIN &
for i in $(seq 5)
do
sleep 0.8
echo -e ".\c"
done
getPID
if [ $PID -ne 0 ]; then
echo "(PID=$PID)...[Success]"
echo "================================================================================================================"
else
echo "[Failed]"
echo "================================================================================================================"
fi
fi
}
startup
1.5 run.bat
title face-server @echo off rem ##############設(shè)置延遲環(huán)境變量擴(kuò)充,即感嘆號(hào)間的值不會(huì)因跳出循環(huán)而為空值。################ setlocal enabledelayedexpansion rem ###############java命令###################### set JAVA=%JAVA_HOME%\bin\java.exe rem ###############jvm參數(shù)###################### set OPTS=-Xms512M -Xmx512M -XX:+AggressiveOpts -XX:+UseParallelGC -XX:NewSize=64M rem ###############agent啟動(dòng)類參數(shù)###################### set serverMain=cn.micropattern.face.Application echo JAVA: %JAVA% echo CLASSPATH: %CP% echo OPTS: %OPTS% java %OPTS% -cp "../lib/*;../conf" %serverMain% PAUSE

2.打包install -Dmaven.test.skip=true

執(zhí)行完命令后zip包在target文件路徑下生成

3.linux啟動(dòng)服務(wù)
上傳并解壓zip包


啟動(dòng)成功
4.測試

測試成功
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
手把手教你從零設(shè)計(jì)一個(gè)java日志框架
Java里的各種日志框架,相信大家都不陌生。Log4j/Log4j2/Logback/jboss logging等等,其實(shí)這些日志框架核心結(jié)構(gòu)沒什么區(qū)別,只是細(xì)節(jié)實(shí)現(xiàn)上和其性能上有所不同。本文帶你從零開始,一步一步的設(shè)計(jì)一個(gè)日志框架2021-02-02
深入理解java內(nèi)置鎖(synchronized)和顯式鎖(ReentrantLock)
這篇文章主要介紹了Java多線程之內(nèi)置鎖(synchronized)和顯式鎖(ReentrantLock)的深入理解新的和用法,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11
Spring Cloud升級(jí)最新Finchley版本的所有坑
這篇文章主要介紹了Spring Cloud升級(jí)最新Finchley版本的所有坑,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-08-08
Java中使用Java?Mail實(shí)現(xiàn)郵件服務(wù)功能示例
這篇文章主要介紹了Java中使用Java?Mail實(shí)現(xiàn)郵件服務(wù)功能的相關(guān)資料,文章還提供了一個(gè)發(fā)送郵件的示例代碼,包括創(chuàng)建參數(shù)類、郵件類和執(zhí)行結(jié)果,需要的朋友可以參考下2025-01-01
springboot中JSONObject遍歷并替換部分json值
這篇文章主要介紹了springboot中JSONObject遍歷并替換部分json值,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
Java 圖片與byte數(shù)組互相轉(zhuǎn)換實(shí)例
下面小編就為大家?guī)硪黄狫ava 圖片與byte數(shù)組互相轉(zhuǎn)換實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02

