springboot轻量部署方案


背景:jar包启动时,由于依赖较多,包过大,重启耗时较多

需求:服务快速启动、资源分类部署

方法:

   一、新建一个springboot项目,随便引入一些依赖

    二、使用插件(maven-assembly-plugin)


                maven-assembly-plugin
                2.6
                
                    ${project.build.finalName}
                    false
                    src/main/assembly.xml
                
                
                    
                        make-assembly
                        package
                        
                            single
                        
                    
                
            

   三、配置打包形式、脚本

    1、shutdown.sh

#!/bin/sh
basepath=$(cd `dirname $0`; pwd)
serviceName=`head -n 1 ${basepath}/sname.cfg`
processName=$serviceName
pkill -f $processName

    2、sname.cfg

packagedemo

    3、startup.sh

#!/bin/sh
#echo "当前目录:" `pwd`
basepath=$(cd `dirname $0`; pwd)
#echo "脚本文件所在目录:${basepath}"
serviceName=`head -n 1 ${basepath}/sname.cfg`
processName=$serviceName
commandFile=$basepath/$processName
if [ ! -f $commandFile ]; then
  ln -s $JAVA_HOME/bin/java $commandFile
fi
cd $basepath
cd ..
#echo "命令文件:${commandFile}"

jarFile=`ls *.jar`
#echo $jarFile
$commandFile -jar $jarFile &

    4、assembly.xml

<?xml version="1.0" encoding="UTF-8"?>

    assembly
    
        tar.gz
        dir
    
    true
    
        
            src/bin  
            bin
            0755 
        
        
            src/main/resources
            config
            
                **
            
        
        
            ${project.build.directory}
            
            
                *.jar
            
        
    
    
        
            lib
            runtime
            
                ${groupId}:${artifactId}
            
        
    

   四、maven打包