maven的依赖继承

发布于:2024-03-29 ⋅ 阅读:(67) ⋅ 点赞:(0)

先说一下创建子maven工程的步骤

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

继承

继承的作用:在父工程中,统一管理项目中的依赖信息,进行统一的版本控制

继承的背景是:
	对一个大型的项目进行了模块拆分,
	一个project下,创建了很多的module,
	每个module都需要配置自己的依赖信息,
	通过,在父工程中,为整个项目维护依赖信息的组合,既保证了整个项目的使用规范、准确的jar包,又能够将以往的经验沉淀下来,节约时间。

继承的语法

父工程studytwo:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.atguigu</groupId>
    <artifactId>studytwo</artifactId>
    <version>1.0-SNAPSHOT</version>

    
     聚合:Maven聚合,是指将多个项目,组织到一个父项目中,通过触发父工程的构建,统一按顺序触发子工程构建的过程。
     聚合的作用:
         1、统一管理子项目构建,通过聚合,可以将多个子项目组织在一起,方便管理和维护
         2、优化构建顺序,通过聚合,可以对多个项目进行顺序控制,避免出现构建依赖混乱导致构建失败的情况
     另:
         这是创建子maven工程后idea自动添加的,这里说明此工程下,有2个子工程:shop-user、shop-order。
         这里的内容就是要统一管理的那些子工程的artifactId
    <modules>
        <module>shop-order</module>
        <module>shop-user</module>
    </modules>

    当前工程作为父工程,他要管理子工程,所以打包方式必须是:pom
    <packaging>pom</packaging>

    导入依赖,在此处导入,所有的子工程都有相应的依赖
    <dependencies></dependencies>

    声明依赖,不会下载依赖,可以被子工程继承版本号
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>2.15.2</version>
            </dependency>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.28</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

</project>

子工程shop-user:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    这是idea自动有的,parent标签就是来指定继承父工程的gav属性
    <parent>
        <artifactId>studytwo</artifactId>
        <groupId>com.atguigu</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>

    g v 属性,也继承父工程,可以自定义
    <artifactId>shop-user</artifactId>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
    </dependencies>

</project>

子工程shop-order:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <parent>
        <artifactId>studytwo</artifactId>
        <groupId>com.atguigu</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>

    g v 属性,也继承父工程,可以自定义
    <artifactId>shop-order</artifactId>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
        </dependency>
    </dependencies>

</project>

再加上几张图解释一下

在这里插入图片描述

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到