Springboot jar文件如何打包zip在linux环境运行

网友投稿 283 2022-12-14


Springboot jar文件如何打包zip在linux环境运行

这篇文章主要介绍了Springboot jar文件如何打包zip在linux环境运行,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

1.添加打包配置文件

1.1 assembly.xml

xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"

xmlns:xsi="http://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">

bin

zip

true

lib

${project.build.directory}/bin

/bin

0777

${project.build.directory}/conf

/conf

0644

xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"

xmlns:xsi="http://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">

bin

zip

true

lib

${project.build.directory}/bin

/bin

0777

${project.build.directory}/conf

/conf

0644

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]

#该脚本可在服务器上的任意目录下执行,不会影响到日志的输出位置等

#-------------------------------------------------------------------------------------------------------------

if [ ! -n "$JAVA_HOME" ]; then

export JAVA_HOME="/export/server/jdk1.8.0_141"

fi

#-------------------------------------------------------------------------------------------------------------

# 系统运行参数

#-------------------------------------------------------------------------------------------------------------

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:Paralhttp://lelGCThreads=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 ##############设置延迟环境变量扩充,即感叹号间的值不会因跳出循环而为空值。################

setlocal enabledelayedexpansion

rem ###############java命令######################

set JAVA=%JAVA_HOME%\bin\java.exe

rem ###############jvm参数######################

set OPTS=-Xms512M -Xmx512M -XX:+AggressiveOpts -XX:+UseParallelGC -XX:NewSize=64M

rem ###############agent启动类参数######################

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

执行完命令后zip包在target文件路径下生成

3.linux启动服务

上传并解压zip包

启动成功

4.测试

测试成功


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java数据库开发之JDBC基础使用方法及实例详解
下一篇:Logger.error打印错误异常的详细堆栈信息
相关文章

 发表评论

暂时没有评论,来抢沙发吧~