dependencyManagement和dependencies的区别

1.dependencies(直接依赖)

  • 作用直接引入依赖到当前模块

  • 特点

  • 声明的依赖会实际被下载并加入classpath

  • 会传递给依赖此模块的其他项目(依赖传递性)

  • 必须显示指定版本号(除非从父级继承

  • 使用场景:单模块项目或需要实际使用依赖的模块
    • 示例:

    • <dependencies>
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-core</artifactId>
              <version>5.3.18</version> <!-- 必须指定版本 -->
          </dependency>
      </dependencies>

    • 2. dependencyManagement(依赖管理)

    • 作用声明依赖版本和范围但不直接引入依赖

    • 特点

    • 不实际下载依赖,仅提供版本管理

    • 集中版本号和scope(如test/runtime)

    • 子模块引用时多模块项目的父POM

    • 使用场景:统一管理多模块版本项目的依赖版本

    • 示例(父POM中):

      <dependencyManagement>
          <dependencies>
              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-core</artifactId>
                  <version>5.3.18</version> <!-- 统一指定版本 -->
                  <scope>compile</scope>    <!-- 统一指定作用域 -->
              </dependency>
          </dependencies>
      </dependencyManagement>

    • 工作流程示例(多模块项目)
    • 父模块 POM(管理版本)
    • <project>
          <!-- 父模块声明 -->
          <dependencyManagement>
              <dependencies>
                  <!-- 统一管理版本 -->
                  <dependency>
                      <groupId>mysql</groupId>
                      <artifactId>mysql-connector-java</artifactId>
                      <version>8.0.28</version>
                  </dependency>
              </dependencies>
          </dependencyManagement>
      </project>
    • 子模块 POM(使用依赖)
    • <project>
          <dependencies>
              <!-- 子模块直接使用,无需指定版本 -->
              <dependency>
                  <groupId>mysql</groupId>
                  <artifactId>mysql-connector-java</artifactId> 
                  <!-- 版本从父级继承 -->
              </dependency>
          </dependencies>
      </project>

    • 注意:单模块项目直接使用 dependencies 声明依赖即可;

      父 POM 用 <dependencyManagement> 声明版本;

      子模块用 <dependencies> 引入实际依赖

      类似于代码中的声明接口和具体实现的关系。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值