JavaWeb - Maven父子工程

Maven父子工程 :

  1. 使用maven的好处:就是两点 一点就是依赖管理 二就是一键构建(上一篇讲的非常的清楚了 )

  2. 什么是传递依赖:传递性依赖是Maven2.0的新特性。假设你的项目依赖于一个库,而这个库又依赖于其他库。你不必自己去找出所有这些依赖,你只需要加上你直接依赖的库,Maven会隐式的把这些库间接依赖的库也加入到你的项目中。这个特性是靠解析从远程仓库中获取的依赖库的项目文件实现的。一般的,这些项目的所有依赖都会加入到项目中,或者从父项目继承,或者通过传递性依赖。(官方文档的地址:http://ifeve.com/maven-dependency-mechanism/

  3. 依赖原则: 使用依赖原则的目的就是防止依赖的jar包发生冲突。

    • 为了避免依赖重复 需要选择一个依赖路径
      • 就是最短路径优先原则:谁离得最近就使用谁的依赖jar包 如:C到达A为C->B->AC到达B为C->B

        例如:
        A中的commons-io的版本为2.4
        B中的commons-io的版本为2.0
        C中依赖于B,B依赖于A
        则C的commons-io的包为2.0版本 因为依赖的短路优先

      • 路径相同的原则:就是按照pom文件中的依赖的使用哪个在前就是用哪个:

        C到达A为C->A
        C到达B为C->B
        则看pom文件中依赖的两个工程谁在前面就是用哪个版本

  4. 依赖冲突的解决方式:

    • 就是使用依赖原则

    • 第二种方式就是使用排除依赖的方式: 就是在pom文件中使用exclusions标签
      在这里插入图片描述

    • 第三种方式就是使用锁定版本的方式:版本锁定后则不考虑依赖的声明顺序或依赖的路径,以锁定的版本的为准添加到工程中,此方法在企业开发中常用(也是比较推荐的方式)

      • 使用<properties>标签设置版本 :在这里插入图片描述
        在这里插入图片描述
  5. 分模块构建项目工程:

    • 通常继承和聚合同时使用
      • 何为继承:继承是为了消除重复,如果将 dao、service、web 分开创建独立的工程则每个工程的 pom.xml 文件中的内容存在重复,比如:设置编译版本、锁定 spring 的版本的等,可以将这些重复的配置提取出来在父工程的 pom.xml 中定义。
      • 何为聚合:项目开发通常是分组分模块开发,每个模块开发完成要运行整个工程需要将每个模块聚合在一起运行,比如:dao、service、web 三个工程最终会打一个独立的 war 运行
        在这里插入图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

上山打卤面

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值