欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 游戏 > Maven的dependencyManagements锁定版本依赖

Maven的dependencyManagements锁定版本依赖

2025/2/13 4:16:45 来源:https://blog.csdn.net/qq_43750656/article/details/145537190  浏览:    关键词:Maven的dependencyManagements锁定版本依赖
Pom工程的父项目定义的依赖
 <dependencyManagement><dependencies><!--springcloud 2023.0.0--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring.cloud.version}</version><type>pom</type><scope>import</scope></dependency><!--springcloud alibaba 2022.0.0.0-RC2--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring.cloud.alibaba.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>

这里锁定的依赖版本是spring-cloud-alibaba-dependencies,是以pom方式引入的,说明这是一个pom工程,其中import作用是将spring-cloud-alibaba-dependenciesPOM 文件中的 部分导入到当前项目的 中,从而实现依赖版本的统一管理。

这是国内git地址:
https://gitee.com/alibaba/spring-cloud-alibaba/blob/2023.0.3.2/spring-cloud-alibaba-dependencies/pom.xml

在这里插入图片描述
相当于是把这个项目中的所有dependencyManagement都合并到了自己创建的父项目中,所以只要是在spring-cloud-alibaba-dependencies中定义的依赖的版本,所有子项目都不需要再定义版本号,只需要引入依赖即可。

这段 Maven 依赖配置代码主要用于引入 Spring Cloud Alibaba 的依赖管理,下面为你详细解释代码中各个元素的含义和作用:

代码各元素解释

  • <dependency>:这是 Maven 中用于声明依赖项的根标签,用于指定项目所依赖的外部库或模块。
  • <groupId>:指定依赖所属的组织或项目组的唯一标识符。在这个例子中,com.alibaba.cloud 表明该依赖是由阿里巴巴云团队开发和维护的与 Spring Cloud 相关的组件。
  • <artifactId>:表示具体依赖的项目名称。spring-cloud-alibaba-dependencies 指的是 Spring Cloud Alibaba 提供的依赖管理 POM 文件,它可以帮助我们统一管理 Spring Cloud Alibaba 相关组件的版本。
  • <version>:指定依赖的版本号。这里使用的是 2023.1.0,意味着使用的是 2023 年发布的第一个主要版本,确保了项目中使用的 Spring Cloud Alibaba 相关组件是该版本。
  • <type>:指定依赖的类型,默认值是 jar。这里设置为 pom,表示引入的是一个 POM(Project Object Model)文件,而不是普通的 JAR 包。POM 文件通常用于依赖管理和项目配置。
  • <scope>:设置为 import,这是一种特殊的依赖范围,仅适用于 typepom 的依赖。import 范围的作用是将指定的 POM 文件中的 <dependencyManagement> 部分导入到当前项目的 <dependencyManagement> 中,从而实现依赖版本的统一管理。

实际用途

通过引入 spring-cloud-alibaba-dependencies,可以避免在项目中手动为每个 Spring Cloud Alibaba 组件指定版本号,减少版本冲突的风险。例如,在你的项目中需要使用 Nacos(服务注册与发现)、Sentinel(流量控制)等 Spring Cloud Alibaba 组件时,只需在 <dependencies> 中声明依赖,而无需指定版本:

<dependencies><!-- 引入 Nacos Discovery 依赖,无需指定版本 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!-- 引入 Sentinel 依赖,无需指定版本 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency>
</dependencies>

这样,Maven 会自动从 spring-cloud-alibaba-dependencies 中获取这些组件的对应版本,确保它们之间的兼容性。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com