Spring-boot打包成tar.gz 格式部署

Spring-boot打包成tar.gz 格式部署的主要配置如下

pom.xml


  ${project.artifactId}
  
    
      org.apache.maven.plugins
      maven-jar-plugin
      
        
          com/**
          cn/**
        
      
    
    
      org.apache.maven.plugins
      maven-assembly-plugin
      
        
          make-assembly
          pre-integration-test
          
            single
          
          
            
            false
            
            true
            
            
              src/main/assembly/package.xml
            
            
            ${project.build.directory}/
          
        
      
    
  


  
    aliyun
    aliyun
    https://maven.aliyun.com/repository/public
    default
    
      true
    
    
      false
    
  

package.xml

package.xml 放在 src/main/assembly目录下


  
  release
  
  
    
    tar.gz
  

  
  true

  
    
    
      ${basedir}/src/main/resources
      config
      
        ${artifactId}
        ${artifactId}/**
      
    

    
    
      ${basedir}/src/main/resources/${artifactId}
      static/${artifactId}
    

    
    
      ${basedir}/src/main/bin
      unix
      service
      
        *.service
      
    

    
    
      ${basedir}/src/main/bin
      unix
      
      755
      
        *.sh
      
    

    
      ${basedir}/src/main/bin
      windows
      
      
        *.bat
      
    

    
      ${basedir}/lib
      lib
    
  

  
  
    
      lib
    
  

linux 启动脚本sh文件

启动脚本放在 src/main/bin 下面

#/bin/sh
# chkconfig: 345 99 01
# description:ibot-robot-ask

##############################
PRG="$0"
while [ -h "$PRG" ] ; do
  ls=`ls -ld "$PRG"`
  link=`expr "$ls" : '.*-> \(.*\)$'`
  if expr "$link" : '/.*' > /dev/null; then
    PRG="$link"
  else
    PRG=`dirname "$PRG"`/"$link"
  fi
done
#############################
##########################
# custom variables start
###########################
APP_HOME=`dirname "$PRG"`
APP_NAME=`basename "$PRG"`
PID_FILE=$APP_HOME/$APP_NAME.pid
JAVA_HOME=/usr/java/jdk1.8.0_211/
OOM="-XX:+HeapDumpOnOutOfMemoryError"
#JAVA_OPTS="-Xdebug -Xrunjdwp:server=y,transport=dt_socket,suspend=n"
CP="$APP_HOME/lib/*:$APP_HOME/config:$APP_HOME/static"
MAIN_CLASS="com.esunward.plisp.PlispSystemApplication"
CMD="$JAVA_HOME/bin/java -Xverify:none $OOM $JAVA_OPTS -cp $CP $MAIN_JAR $MAIN_CLASS"
###########################
# custom variables end
###########################

#########################
# define funcation start
##########################
lock_dir=/var/lock/subsys
lock_file=$lock_dir/$APP_NAME
createLockFile(){
    [ -w $lock_dir ] && touch $lock_file
}

start (){
  [ -e $APP_HOME/logs ] || mkdir $APP_HOME/logs -p

  if [ -f $PID_FILE ]
  then
    echo 'alread running...'
  else
    echo $CMD
    nohup $CMD >> $APP_HOME/logs/$APP_NAME.log 2>&1 &
    echo $! > $PID_FILE
    createLockFile
    echo "[start success]"
  fi

}

stop(){
  if [ -f $PID_FILE ]
  then
    kill `cat $PID_FILE`
    rm -f $PID_FILE
    echo "[stop success]"
  else
    echo 'not running...'
  fi
}

restart(){
  stop
  start
}

status(){
  if [ -f $PID_FILE ]
  then
    cat $PID_FILE
  else
    echo 'not running...'
  fi
}

##########################
# define function end
##########################
ACTION=$1
case $ACTION in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    restart
    ;;
  status)
    status
    ;;
  *)
    echo usage "{start|stop|restart|status}"
  ;;
esac

win启动脚本bat文件

启动脚本放在 src/main/bin 下面

java -XX:+HeapDumpOnOutOfMemoryError -Xverify:none -cp .\lib\*;config;static com.litong.ibot.robot.AskApp

在linux上前台调试启动脚本文件 start.sh

start.sh放在 src/main/bin 下面

/usr/java/jdk1.8.0_211/bin/java -XX:+HeapDumpOnOutOfMemoryError -Xverify:none -cp ./lib/*:config:static com.litong.ibot.robot.AskApp

打包

第一次部署执行clean pre-integration-test -DskipTests生成tar.gz包,部署到服务器上后,以后部署使用clean package -DskipTests生成jar包.将jar包放到lib目录下,一个jar包仅仅有1M多些,上传速度非常快

clean package -DskipTests

仅仅生成jar文件,不执行assembly

clean pre-integration-test -DskipTests

生成jar文件,执行assembly,生成tar.gz

部署

第一次部署将tar.gz 上传到服务器上 更改 启动脚本的JAVA_HOME和MAIN_CLASS,然后执行命令

xxx.sh start

第二次部署

将jar包放到安装目录的lib目下下,覆盖原来的lib文件,执行xxx.sh restart重启

你可能感兴趣的:(Spring-boot打包成tar.gz 格式部署)