开发者社区 > 云原生 > 正文

父项目中把nacos-client新增了2.0.4的版本,但子项目仍显示1.4.2版本,是什么原因?

已解决

我在父项目中把SCA的nacos-client的版本排除了,新增了2.0.4的版本,打包显示是nacos-client的版本是2.0.4,但为什么我子项目中的maven依赖显示的还是nacos-client的1.4.2版本?
父项目:0745c0d40397c59bd15cebfb8543b00c.png
子项目:ba55bc8d992f5326d79319ec29065160.png
请问这种是什么原因?我现在必须在子项目中再排除掉nacos-client,再在子项目中引入nacos-client的2.0.4才行

展开
收起
2401。 2023-09-02 19:22:37 116 0
1 条回答
写回答
取消 提交回答
  • 官方回答

    根据您提供的屏幕截图,显示了您在父项目中排除了 SCA 的 nacos-client 依赖,并添加了版本为 2.0.4 的 nacos-client 依赖。但是在子项目中,maven 依赖仍然显示为 nacos-client 的 1.4.2 版本。

    这种情况可能是由于子项目继承了父项目的依赖关系,导致子项目无法获取到新的 nacos-client 依赖。为了解决这个问题,您可以尝试以下两个解决方案:

    在子项目中排除 nacos-client 1.4.2 依赖:在子项目的 pom.xml 文件中,排除掉 nacos-client 1.4.2 的依赖,手动引入 nacos-client 2.0.4 的依赖。可以通过添加如下代码来排除依赖:

      <groupId>com.alibaba.nacos</groupId>
      <artifactId>nacos-client</artifactId>
      <version>2.0.4</version>
      <exclusions>
        <exclusion>
          <groupId>com.alibaba.nacos</groupId>
          <artifactId>nacos-client</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    

    在父项目中统一管理依赖版本:在父项目的 pom.xml 文件中,将 nacos-client 的版本设置为 2.0.4,并将该依赖声明为 中的一个依赖。然后在子项目中引入 nacos-client 依赖时,不指定版本号,让其继承父项目中的版本。如下所示: 在父项目 pom.xml 中:

      <dependencies>
        <dependency>
          <groupId>com.alibaba.nacos</groupId>
          <artifactId>nacos-client</artifactId>
          <version>2.0.4</version>
        </dependency>
      </dependencies>
    </dependencyManagement>
    

    然后在子项目中引入 nacos-client 依赖时,不指定版本号:

      <groupId>com.alibaba.nacos</groupId>
      <artifactId>nacos-client</artifactId>
    </dependency>
    

    两种方法都可以解决子项目无法获取到新的 nacos-client 依赖的问题。选择哪种方法取决于您的项目需求和组织结构。

    2023-09-21 17:39:48
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
Nacos架构&原理 立即下载
workshop专场-微服务专场-开发者动手实践营-微服务-使用Nacos进行服务的动态发现和流量调度 立即下载
Nacos 启航,发布第一个版本, 云原生时代助力用户微服务平台建设 立即下载