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   曹伟雄  阅读(2646)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示