maven配置provided 和true

内容分享3小时前发布
0 0 0

maven背景

Maven 中的依赖是有传递(Transitive)性的,默认会包含传递的依赖,这样就不用手动引用每一个依赖了.
由于传递依赖,由于多个传递下同一个jar包的版本不同,很可能会有包冲突等一系列问题。
解决这个依赖传递导致的冲突问题,有两种方案:

  1. 在使用者,也就是发起依赖方进行排除
    <exclusions></exclusions>
  2. 在提供方,将依赖的范围定义为不传递
    <scope>provided</scope> 和<optional>true</optional>就是在提供方配置不传递的标签

optional 可选的

<dependency>
     <groupId>org.projectlombok</groupId>
     <artifactId>lombok</artifactId>
     <optional>true</optional>
</dependency>

可以理解为此功能/此依赖可选,如果不需要某项功能,可以不引用这个包

scope provided 提供的

<dependency>
      <groupId>org.apache.submarine</groupId>
      <artifactId>server-api</artifactId>
      <scope>provided</scope>
</dependency>

可以理解为此包不由我直接提供 需要调用者/容器提供

© 版权声明

相关文章

暂无评论

none
暂无评论...