Python工程师Java之路(p)Maven聚合和继承

文章目录

依赖管理

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

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

依赖传递

  • 直接依赖:在当前项目中通过依赖配置建立的依赖关系
  • 间接依赖:被资源的资源如果依赖其他资源,当前项目间接依赖其他资源
  • 特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的

可选依赖和排除依赖

可选依赖和排除依赖的区别

  • 可选依赖(optional) :对外隐藏当前所依赖的资源
    A依赖B,B依赖C,C不想被A依赖进来
xml 复制代码
<dependency>
    <groupId>com.itheima</groupId>
    <artifactId>maven_03_pojo</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!--可选依赖是隐藏当前工程所依赖的资源,隐藏后对应资源将不具有依赖传递性-->
    <optional>false</optional>
</dependency>
  • 排除依赖(exclusions) :主动断开依赖的资源,被排除的资源无需指定版本
    A依赖B,B依赖C,A不想将C依赖进来
xml 复制代码
<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>
            <artifactId>mybatis</artifactId>
        </exclusion>
    </exclusions>
</dependency>

继承与聚合

  • 聚合:

    将多个模块组织成一个整体,同时进行项目构建的过程

  • 聚合工程:

    通常是一个不具有业务功能的工程(有且仅有一个pom文件)

  • 作用:使用聚合工程可以将多个工程编组,通过对聚合工程进行构建,实现对所包含的模块进行同步构建。

    当工程中某个模块发生更新(变更)时,必须保障工程中与已更新模块关联的模块同步更新,此时可以使用聚合工程来解决批量模块同步构建的问题。

  • 继承描述的是两个工程间的关系,子工程可以继承父工程中的配置信息,常见于依赖关系的继承

  • 作用:

    1、简化配置

    2、减少版本冲突

1、创建工程

2、创建模块


打包类型 说明
jar 打包成jar,是默认的打包方式
war 打包成war,发布在服务器上
pom 用在父级工程或聚合工程,用于版本控制

聚合

xml 复制代码
<packaging>pom</packaging>
xml 复制代码
<modules>
    <module>module1</module>
    <module>module2</module>
</modules>

继承

xml 复制代码
<parent>
    <groupId>org.example</groupId>
    <artifactId>project1</artifactId>
    <version>1.0-SNAPSHOT</version>
</parent>
相关推荐
吃好睡好便好5 小时前
提取矩阵某一行或某一列元素
开发语言·人工智能·线性代数·算法·matlab·矩阵
better_liang7 小时前
每日Java面试场景题知识点之-消息队列MQ核心场景与实战
java·面试·kafka·消息队列·rabbitmq·rocketmq·mq
小江的记录本7 小时前
【JVM虚拟机】垃圾回收GC:四种引用类型:强引用、软引用、弱引用、虚引用(附《思维导图》+《面试高频考点清单》)
java·jvm·spring boot·后端·python·spring·面试
小马爱打代码8 小时前
Spring源码 第四篇:Spring 5 源码深度拆解:AOP 全流程核心原理
java·后端·spring
deepin_sir8 小时前
10 - 函数
开发语言·python
better_liang8 小时前
每日Java面试场景题知识点之-SpringBoot启动流程
java·面试·springboot·源码解析·启动流程
RyFit8 小时前
Java + AI 实战:Spring AI 从入门到企业级落地
java·人工智能·spring
z落落8 小时前
C#String字符串
开发语言·c#·php
猫头虎-前端技术8 小时前
JS 作用域与闭包:从变量提升到闭包陷阱的超详细解析
开发语言·javascript·云计算·bootstrap·ecmascript·openstack·perl
枫叶林FYL9 小时前
项目十:事件溯源仓储管理系统(WMS)仿真实现
开发语言·python