springboot打包实现项目JAR包和依赖JAR包分离

写在前面的

当我们使用spring boot写项目时,一般都会遇到一个问题,那就是spring boot打包时,会将自己写的代码和项目的所有依赖文件打成一个可执行的jar包。

通常我们的项目都是运行在服务器上的,当项目更新时,每次都要向服务器上传这个包。如果项目的依赖包很多,那么这个文件就会非常大。

大文件上传不仅浪费带宽,有时候网络不稳定,传输一半断网,又要重新上传,非常麻烦。

springboot打包实现项目JAR包和依赖JAR包分离_第1张图片

默认的maven配置


    
        
            org.springframework.boot
            spring-boot-maven-plugin
        
    

如果能将项目外部依赖和自己的代码包分开打包,当修改项目后,只需要再次覆盖修改后的包,那岂不是美滋滋?

解决方案

使用maven的assembly打包插件

assembly配置

在项目中创建一个文件,我放在src/main/assembly/assembly.xml中,大家可以根据喜好自己创建。

springboot打包实现项目JAR包和依赖JAR包分离_第2张图片

assembly中的具体配置


    
    bin
    
    
        zip
    
    
    false
    
        
            
            false
            lib
            false
        
    
    
        
        
            ${project.basedir}
            
            
                README*
                LICENSE*
                NOTICE*
            
        
        
        
            ${project.basedir}/src/main/resources
            config
        
        
        
            ${project.basedir}/src/main/bin
            bin
        
        
        
            ${project.build.directory}
            
            
                *.jar
            
        
    

maven中的配置


    
        
        
            org.apache.maven.plugins
            maven-jar-plugin
            
                
                    
                    false
                    
                        
                        true
                        
                        lib/
                        
                        com.zbrx.speed.App
                    
                
            
        
        
        
            org.apache.maven.plugins
            maven-assembly-plugin
            
                
                    
                    src/main/assembly/assembly.xml
                
            
            
                
                    make-assembly
                    package
                    
                        single
                    
                
            
        
        
        
            org.apache.maven.plugins
            maven-surefire-plugin
            
                true
            
        
    

最终打包后的效果

springboot打包实现项目JAR包和依赖JAR包分离_第3张图片

压缩包里的文件内容

springboot打包实现项目JAR包和依赖JAR包分离_第4张图片

lib中的文件

springboot打包实现项目JAR包和依赖JAR包分离_第5张图片

config配置文件

springboot打包实现项目JAR包和依赖JAR包分离_第6张图片

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

你可能感兴趣的:(springboot打包实现项目JAR包和依赖JAR包分离)