实现自定义SpringBoot框架日志组件の五: 工程实践

系列

实现自定义SpringBoot框架日志组件の一:日志系统
实现自定义SpringBoot框架日志组件の二:配置文件
实现自定义SpringBoot框架日志组件の三: 自定义pattern
实现自定义SpringBoot框架日志组件の四: 自适应

前言

这篇博客分享一下我自己的工程构建的经验,当然了千人千面,仅供参考

构建

看一下我的 pom.xml


        
            com.lmax
            disruptor
            3.4.4
        


        
        
            org.springframework.boot
            spring-boot-starter-web
            
                
                
                    org.springframework.boot
                    spring-boot-starter-logging
                
            
            provided
        

        
        
            org.springframework.boot
            spring-boot-starter-log4j2
            provided
        

这里的依赖有两种 scope
一种是默认的,也就是compile,一种是 provided
贴个图

image.png

其中compile会进行依赖传递,也就是说依赖了我这个 jar包的项目,会自动依赖 disruptor-3.4.4,会多引入一个包
provided不会进行依赖传递,也就是说用了我的包的项目,不引入spring-boot-starter-log4j2 的时候会有问题,不生效或者报错

这么做的原因如下

  1. 引入 disruptor
    考虑到使用这个项目的可能之前是 logback 的,没有见过这个包;为了方便直接默认引入,就算版本冲突了,也只有这一个包冲突了,解决起来也方便
  2. 不引入 spring-boot-starter-log4j2
    考虑到这个包是spring体系的,会默认引入一堆的依赖;使用方的spring和springboot的版本也是千奇百怪,强行引入的话,万一导致版本不兼容或者冲突,一堆包需要解决,很麻烦,所以只做provided, 我自己能编译通过就行,具体版本使用方自行决定,与此同时使用文档要写清楚

spring-boot-starter-log4j2 的依赖如下(插件是idea的 maven helper)

image.png

maven 中央仓库上传

待完善

参考

Maven之scope详解

你可能感兴趣的:(实现自定义SpringBoot框架日志组件の五: 工程实践)