maven optional

这篇具有很好参考价值的文章主要介绍了maven optional。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

什么是optional

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

<optional>true</optional>

为什么要使用optional

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

使用场景

A项目的pom中依赖了system-local-api

<dependency>
     <groupId>com.sinosoft</groupId>
     <artifactId>system-local-api</artifactId>
     <version>1.0.0</version>
</dependency>

B项目依赖了A项目
因为maven有依赖传递机制,那么B项目就会有system-local-api的jar包,实际上在B项目中不一定要使用system-local-api,那么我们项目中就会有多余的依赖,
当这种情况时越来越多时,最后整个项目的jar包就有很多的多余依赖,导致项目很臃肿。此时可以设置optional为true,就不会传递给B项目。

<dependency>
  	<groupId>com.sinosoft</groupId>
    <artifactId>system-local-api</artifactId>
    <version>1.0.0</version>
    <optional>true</optional>
</dependency>

总结

当你开发的组件时,有一个功能,有多种实现方式的jar可以提供,但是实际只会使用一种的情况下。可以把实现的jar包设置成:true。
即依赖时可以自行选择需要什么功能,只提供项目需要的jar,而不是默认全部都给你。文章来源地址https://www.toymoban.com/news/detail-674298.html

到了这里,关于maven optional的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Java新特性:Optional类

    Java新特性:Optional类 Optional 类是 Java 8 才引入的,Optional 是个容器,它可以保存类型 T 的值,或者仅仅保存 null。Optional 提供了很多方法,这样我们就不用显式进行空值检测。Optional 类的引入很好的解决空指针异常。 Java 8 引入 Optional 类,用来解决 NullPointerException。 Optional 代

    2024年02月16日
    浏览(9)
  • 在Java中正确使用Optional

    在Java中正确使用Optional

    Optional类是在Java 8中引入的,用于解决NullPointerException的问题。 java.util.Optional类是一个泛型类型的类,只包含一个类型为T的值。其目的是提供对可能为null的类型T的引用对象的更安全的替代方案。但是,只有在正确使用的情况下,Optional对象才是安全的。 创建Optional对象的方式

    2024年01月16日
    浏览(13)
  • Java 10 - Optional类新方法

    2024年02月13日
    浏览(13)
  • 【Java基础教程】(三十一)常用类库篇 · 第一讲:Optional类——解锁Java的Optional操作,消灭那些隐匿的空指针,还程序世界一个安稳!~

    【Java基础教程】(三十一)常用类库篇 · 第一讲:Optional类——解锁Java的Optional操作,消灭那些隐匿的空指针,还程序世界一个安稳!~

    Optional 类是Java 8引入的新特性,旨在解决空值( null )的处理问题 。它的设计目的是为了提供一种更好的方式来处理可能为空的值,避免使用 null 导致空指针异常。 Optional 是一个容器对象,可以持有某个类型的非空值或者空值。它是一个包装类,用于替代可能为空的引用变

    2024年02月15日
    浏览(16)
  • 详细分析Java中的Optional类以及应用场景

    详细分析Java中的Optional类以及应用场景

    在实战中学习,灵活运用每个操作类,具体如下: 源码主要如下: 大致含义如下: 这是一个容器对象,可能包含或不包含非空值。如果有值存在,isPresent() 方法将返回 true,而 get() 方法将返回该值。 提供了一些依赖于包含值的存在或缺失的其他方法,例如 orElse()(如果值不

    2024年04月27日
    浏览(18)
  • Java8新特性:Optional类(超详解)

    本博主将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识,有兴趣的小伙伴可以关注博主!也许一个人独行,可以走的很快,但是一群人结伴而行,才能走的更远! 到目前为止,臭名昭著的 空指针异常 是导致Java应用程序失败的最常见原因。以前,为了解决空指

    2023年04月09日
    浏览(10)
  • 《Java8实战》第11章 用 Optional 取代 null

    《Java8实战》第11章 用 Optional 取代 null

    11.1 如何为缺失的值建模 上面的这种代码就很容易出现NullPointerException的异常。 11.1.1 采用防御式检查减少 NullPointerException 为了避免NullPointerException异常,一般就会加很多判断。 这种每次引用一次变量都做一次null的检查。 11.1.2 null 带来的种种问题 它是错误之源。 NullPointerE

    2023年04月19日
    浏览(10)
  • 从头学Java17-Stream API(二)结合Record、Optional

    Stream API 是按照map/filter/reduce方法处理内存中数据的最佳工具。 本系列教程由Record讲起,然后结合Optional,讨论collector的设计。 Java 语言为您提供了几种创建不可变类的方法。可能最直接的是创建一个包含final字段的final类。下面是此类的示例。 编写这些元素后,需要为字段添

    2024年02月12日
    浏览(11)
  • 【JDK版本差异】Optional.requireNonNullElseGet在JAVA8中的替代表述

    【JDK版本差异】Optional.requireNonNullElseGet在JAVA8中的替代表述

    Objects.requireNonNullElseGet 是 Java 9 引入的方法,不在 Java 8 中可用。但是, 可以使用 Java 8 的一些功能来模拟类似的效果。 JDK9以上表述: JDK8中的表述: 在Java9中,该方法本质上就是在 obj 为空的时候,接收一个 Supplier 参数,生成一个默认值。 在 Java 8 中,可以使用 Optional 类的

    2024年02月12日
    浏览(13)
  • 解决:使用前端路由时的报错Cannot destructure property ‘options’ of ‘(0 , vue__WEBPACK_IMPORTED_MODULE_1__.inject)

    解决:使用前端路由时的报错Cannot destructure property ‘options’ of ‘(0 , vue__WEBPACK_IMPORTED_MODULE_1__.inject)

    使用前端路由时,代码无误,但是页面不显示任何东西,控制台报错: Cannot destructure property ‘options’ of ‘(0 , vue__WEBPACK_IMPORTED_MODULE_1__.inject)(…)’ as it is undefined. step1: step3 最终就可以得到期望的效果啦

    2024年02月16日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包