Maven进阶

一、分模块开发与设计

1. 分模块开发的意义

问题导入

分模块开发对工程有什么好处?

模块拆分原则

目的:项目的扩展性变强了,方便其他项目引用相同的功能。

  • 将原始模块按照功能拆分成若干个子模块,方便模块间的相互调用,接口共享

2. 分模块开发(模块拆分)

问题导入

一个完整的工程依据什么来进行模块的拆分?

2.1 创建Maven模块

2.2 书写模块代码

注意事项:

  1. 分模块开发需要先针对模块功能进行设计,再进行编码。不会先将工程开发完毕,然后进行拆分

2.3 通过maven指令安装模块到本地仓库(install指令)

mvn install

注意事项:

  1. 团队内部开发需要发布模块功能到团队内部可共享的仓库中(私服)

二、依赖管理

  • 依赖管理指当前项目运行所需的jar,一个项目可以设置多个依赖

  • 格式:

<!--设置当前项目所依赖的所有jar-->
<dependencies>
    <!--设置具体的依赖-->
    <dependency>
        <!--依赖所属群组id-->
        <groupId>org.springframework</groupId>
        <!--依赖所属项目id-->
        <artifactId>spring-webmvc</artifactId>
        <!--依赖版本号-->
        <version>5.2.10.RELEASE</version>
    </dependency>
</dependencies>

1. 依赖传递

问题导入

A依赖B,B依赖C,A是否依赖于C呢?

  • 依赖具有传递性

    • 直接依赖:在当前项目中通过依赖配置建立的依赖关系

    • 间接依赖:被资源的资源如果依赖其他资源,当前项目间接依赖其他资源

    • 特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的

2. 可选依赖

问题导入

A依赖B,B依赖C,如果A不想将C依赖进来,是否可以做到?

  • 可选依赖指对外隐藏当前所依赖的资源————不透明

<dependency>
    <groupId>com.itheima</groupId>
    <artifactId>maven_03_pojo</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!--可选依赖是隐藏当前工程所依赖的资源,隐藏后对应资源将不具有依赖传递性-->
    <optional>false</optional>
</dependency>

3. 排除依赖

问题导入

A依赖B,B依赖C,如果A不想将C依赖进来,是否可以做到?

  • 排除依赖指主动断开依赖的资源,被排除的资源无需指定版本————不需要

  • 排除依赖资源仅指定GA即可,无需指定V

<dependency>
    <groupId>com.itheima</groupId>
    <artifactId>maven_04_dao</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!--排除依赖是隐藏当前资源对应的依赖关系-->
    <exclusions>
        <exclusion>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.mybatis</groupId>
            <artifa
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值