Springboot打包jar如何分离lib和resources

小编这次要给大家分享的是Spring boot打包jar如何分离lib和resources,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。

创新互联从2013年创立,先为定结等服务建站,定结等地企业,进行企业商务咨询服务。为定结企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

为什么要配置、依赖文件分离:

1.在传统jar包中,所有文件都打包到一个jar包中,jar非常臃肿,在进行服务更新部署时非常不便,而且传输不稳定时导致传输失败。如果过实行文件分离、在依赖不改变的情况下,仅仅上传更新后的 编译文件是非常方便的。

如果要修改一些配置文件:properties、xml,静态文件等可以直接在服务器上编辑。

那么怎么实行配置、依赖文件分离呢?

插件介绍

  • maven-jar-plugin 这个插件式专门用来打包用的,可以配置需要打包进去的文件,程序的入口类等。
  • maven-resources-plugin 这个插件是用来拷贝资源文件的。
  • maven-maven-dependency-plugin 这个插件是用来拷贝依赖库的。
  • maven-assembly-plugin 可以说包含了以上插件的功能,但是可以做到更精细的控制。
  • spring-boot-maven-plugin 这个不用说,springboot 项目最重要的插件,整个项目的打包处理过程还是要依附于它。
     

打包成可执行jar,不仅仅局限SpringBoot项目(主入口函数存在)

maven-jar-plugin 插件打包jar

在pom文件中配置,但是这样 依赖的jar并不会打进来(后面会有解决方法),适用不需要依赖文件的项目。

      
        org.apache.maven.plugins
        maven-jar-plugin
        2.3


        
          
            

              
              true

              
              xxx.xxx.Main

            
          
          
          ${project.build.directory}

        
       

maven-assembly-plugin 插件打包jar

      
        maven-assembly-plugin
        

          
          false
          
            
            jar-with-dependencies
          
          
            
              
              xxx.xxx.Main
            
          
        
        
          
            make-assembly
            
            package
            
              
              assembly
            
          
        
      

打包SpringBoot 项目

方案一、


    
    
      org.apache.maven.plugins
      maven-jar-plugin
      
        
        
          
            true
            
            lib/
            
            false
            
            xxx.xxx.Application
          
          
            
            /resources
          
        
        ${project.build.directory}/dis
      
    

    
    
      org.apache.maven.plugins
      maven-dependency-plugin
      
        
          copy-dependencies
          package
          
            copy-dependencies
          
          
            
                ${project.build.directory}/dis/lib/
              
            
          
        
      

      
      
        maven-resources-plugin
        
          
            copy-resources
            package
            
              copy-resources
            
            
              
                
                  src/main/resources
                
              
              ${project.build.directory}/dis/resources
            
          
        
      

      
      
        org.springframework.boot
        spring-boot-maven-plugin
        
         
          ZIP
          
          true
        
        
        
          
            
              repackage
            
          
        
      

    
  

方案二

这里依赖assembly.xml 描述文件

        
          
            maven-assembly-plugin
            
              false
              
                assembly.xml
              
              ${project.build.directory}/dist/
            
            
              
                make-assembly
                package
                
                  single
                
              
            
          

          
          
            org.apache.maven.plugins
            maven-jar-plugin
            
              
                
                  xxx.xxx.Application
                  
                  lib/
                  true
                
                
                  resources/
                
              
            
          
        

assembly.xml



  distribution

  
  
    zip
  

  false

  
  
    
      src/main/resources/
      /resources
    
  
  

  
    
      
      /lib
      runtime
      
        ${project.groupId}:${project.artifactId}
      
    
    
      
      /
      
        ${project.groupId}:${project.artifactId}
      
    
  

看完这篇关于Spring boot打包jar如何分离lib和resources的文章,如果觉得文章内容写得不错的话,可以把它分享出去给更多人看到。


本文标题:Springboot打包jar如何分离lib和resources
文章地址:http://pwwzsj.com/article/gdoopp.html