springboot 升级依赖的第三方jar包

前言
我们在实际工作中往往会遇到这样的问题,我们项目依赖的一些jar 包升级了,修复了一些漏洞,为了安全考虑,我们也需要进行升级,通常来说,我们不会深度的用到依赖的jar 包,所以升级一个小版本直接替换就完事了。
但是Springboot项目并没有我们想的那么简单。

打包方式
首先还得从打包方式说起,我们使用的打包方式不是直接将将依赖的jar 和配置文件都打在可运行的jar 中。我们打包方式如下:
pom.xml 文件:
 


		
		
			
				src/main/resources
				${project.build.directory}${file.separator}classes
			
			
				src/main/java
				
					
					**/*.xml
				
				true
			
		
		
			
			
				org.apache.maven.plugins
				maven-compiler-plugin
				
					1.8
					1.8
					UTF-8
					true
				
			
			
			
				org.apache.maven.plugins
				maven-jar-plugin
				
					
						
							true
							lib
							
							cn.mastercom.statistics.SdzzStatisticsApplication
						
						
							./
						
					
					
						config/**
						/**/*.xml
						/**/*.properties
					
				
			
			
				maven-assembly-plugin
				
					
					false
					
						
						src/main/build/package.xml
					
				
				
					
						make-assembly
						package
						
							single
						
					
				
			
		
	

package.xml 文件内容如下:

  
  
    package  
      
        zip
      
    
    false  
      
        
            bin
            ${file.separator}  
          
          
            src/main/resources  
            ${file.separator}  
            
            	static/**
            	templates/**
            
          
          
            ${project.build.directory}
            ${file.separator}
              
                *.jar  
              
          
      
      
          
    true
            lib  
            runtime  
            
              
                
                ${groupId}:${artifactId}
              
          
      

最后实现的效果是,依赖jar 和配置文件外置。

springboot 升级依赖的第三方jar包_第1张图片

springboot 升级依赖的第三方jar包_第2张图片

升级

上面可以看到,我们依赖的jar 都存在lib 中了,那比如说要升级一个fastjson

springboot 升级依赖的第三方jar包_第3张图片

如果仅仅这样修改,启动项目的时候,会发现报错,运行不起来。
造成这个原因是我们打包方式导致的,我们这样打包,在运行jar 包中有一个lib中jar 文件的索引,如果我们仅仅替换了jar。那这个索引就找不到对应的文件了。所以需要修改索引,怎么修改呢?
需要修改运行jar中的MANIFEST.MF 文件。

springboot 升级依赖的第三方jar包_第4张图片

这样修改之后就可以启动成功了。
如果觉得这样麻烦,我们也可以修改项目的pom文件,将要升级的jar 进行升级,然后重新打包,替换升级的jar 和可运行的jar 可以达到一样的效果。

你可能感兴趣的:(springboot 升级依赖的第三方jar包)