maven-shade-plugin实现依赖隐藏

在开发一个通用组件时,难免需要借助一些第三方工具帮我们快速实现功能。而我们的通用组件的用户,很可能需要与我们使用相同的工具,如果依赖的组件版本不一致,很有可能造成依赖冲突。除了让使用方排除冲突的公共依赖(很有可能排除任意一方都会造成版本不兼容),还可以使用maven-shade-plugin对通用组件的依赖进行隐藏,这样就可以依赖于各自的版本而不发生冲突。

   
        
            
                org.apache.maven.plugins
                maven-shade-plugin
                3.2.4
                
                    
                        package
                        
                            shade
                        
                        
                            
                            false
                            true
                            false
                            true
                            
                                
                                    org.slf4j
                                    org.myself.toolkit.slf4j
                                
                            
                        
                    
                
            
        
    

例如隐藏slf4j的方法如上,项目打包时会将org.slf4j一同打包,并将包名字段中的org.slf4j替换为org.myself.toolkit.slf4j。当其他项目引入该项目时,即使其他项目也依赖于slf4j,但这两个版本都能独立工作,唯一的缺点会使jar包体积变大。如果要隐藏多个依赖可以添加多个

你可能感兴趣的:(maven-shade-plugin实现依赖隐藏)