热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

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

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

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

1.添加打包配置文件

1.1 assembly.xml


  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: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.测试

测试成功

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


推荐阅读
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • CentOS 7 磁盘与文件系统管理指南
    本文详细介绍了磁盘的基本结构、接口类型、分区管理以及文件系统格式化等内容,并提供了实际操作步骤,帮助读者更好地理解和掌握 CentOS 7 中的磁盘与文件系统管理。 ... [详细]
  • 本文探讨了 RESTful API 和传统接口之间的关键差异,解释了为什么 RESTful API 在设计和实现上具有独特的优势。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • 本文探讨了如何优化和正确配置Kafka Streams应用程序以确保准确的状态存储查询。通过调整配置参数和代码逻辑,可以有效解决数据不一致的问题。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • PHP 5.5.0rc1 发布:深入解析 Zend OPcache
    2013年5月9日,PHP官方发布了PHP 5.5.0rc1和PHP 5.4.15正式版,这两个版本均支持64位环境。本文将详细介绍Zend OPcache的功能及其在Windows环境下的配置与测试。 ... [详细]
  • 本文详细介绍了 Java 中 org.apache.xmlbeans.SchemaType 类的 getBaseEnumType() 方法,提供了多个代码示例,并解释了其在不同场景下的使用方法。 ... [详细]
  • 本文详细介绍了如何解决MyBatis中常见的BindingException错误,提供了多种排查和修复方法,确保Mapper接口与XML文件的正确配置。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • 本文详细介绍了Linux系统中init进程的作用及其启动过程,解释了运行级别的概念,并提供了调整服务启动顺序的具体步骤和实例。通过了解这些内容,用户可以更好地管理系统的启动流程和服务配置。 ... [详细]
author-avatar
mobiledu2502880273
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有