Maven——使用技巧optional

 

什么是optional

optional是maven依赖jar时的一个选项,表示该依赖是可选的,不会被依赖传递。

<optional>true</optional>

 

为什么要使用optional

  • 减少不必要的依赖传递
  • 减少jar包冲突
 

使用场景

以项目中使用到的消息队列依赖为例。

例如:

  • B依赖了消息队列:spring-rabbit
  • 这时候的依赖关系如下 A->B
因为maven有依赖传递机制,那么A项目就会有spring-rabbit的jar包,实际上在A项目中不一定要使用spring-rabbit,那么我们项目中就会有多余的依赖,
当这种情况时越来越多时,最后整个项目的jar包就有很多的多余依赖,导致项目很臃肿。
 

如何优化

只要B项目中把spring-rabbit设置成:<optional>true</optional>

例如:

<dependency>
    <groupId>org.springframework.amqp</groupId>
    <artifactId>spring-rabbit</artifactId>
    <optional>true</optional>
</dependency>

 

总结

当你开发的组件时,有一个功能,有多种实现方式的jar可以提供,但是实际只会使用一种的情况下。可以把实现的jar包设置成:<optional>true</optional>。
表示:瞧,你依赖我时,用到这个功能时,可以自行选择,而不是默认全部都给你,管你用不用。


 

posted on 2022-06-09 14:31  曹伟雄  阅读(2593)  评论(0编辑  收藏  举报

导航