Springboot jar文件如何打包zip在linux环境运行
这篇文章主要介绍了Springboot jar文件如何打包zip在linux环境运行,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
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] #该脚本可在服务器上的任意目录下执行,不会影响到日志的输出位置等 #------------------------------------------------------------------------------------------------------------- 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: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 ##############设置延迟环境变量扩充,即感叹号间的值不会因跳出循环而为空值。################ 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.测试
测试成功
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
赞 (0)