maven配置provided 和true

内容分享2个月前发布
1 0 0
全能 AI 聚合平台 免费

一站式接入主流 AI 大模型,支持对话 · 生图 · 生视频,即开即用

ChatGPT Claude Gemini Grok DeepSeek 通义千问 Ollama
AI对话 AI生图 AI视频
免费使用 →

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
暂无评论...