2023-01-08

一、Maven的核心概念

1、仓库

(1)仓库的分类

①本地仓库:为当前计算机提供maven服务

②远程仓库:为其他计算机提供maven服务

a.私服:架设在当前局域网环境下,为当前局域网范围内的所有Maven工程服务

b.中央仓库:架设在Internet上,为全世界所有Maven工程服务

c.中央仓库的镜像:架设在各大洲,为中央仓库分担流量。减轻中央仓库的压力,同时更快的响应用户请求

(2)仓库中包含的文件

①maven的插件

②第三方框架或工具的jar包

③自己研发的项目或模块

二、maven的坐标

(1)坐标由g-a-v组成

①<groupId>:公司或组织的域名倒序+当前项目名称

②<artifactId>:当前项目的模块名称

③<version>:当前模块的版本

(2)作用:使用坐标引入jar包

(3)应用

坐标的参考网址:

http://mvnrepository.com

打开网址

例如搜索“servlet”的依赖关系

学习笔记——Maven的核心概念之仓库、坐标;maven的依赖管理;Maven中统一管理版本号;Maven的继承;Maven的聚合

学习笔记——Maven的核心概念之仓库、坐标;maven的依赖管理;Maven中统一管理版本号;Maven的继承;Maven的聚合

学习笔记——Maven的核心概念之仓库、坐标;maven的依赖管理;Maven中统一管理版本号;Maven的继承;Maven的聚合

点击内容,进行复制,复制到“pom.xml”中的“<dependencies>”标签内

三、maven的依赖管理

1、依赖范围(即“pom.xml”中的“</dependencies>”中的“</dependency>”的“<scope>”标签的值)

(1)compile(默认值):在main、test、Tomcat(服务器)下均有效

(2)test:只能在test目录下有效

(3)provided:在main、test下均有效,Tomcat(服务器)下无效

2、依赖传递性

(1)依赖原则:

路径最短者优先

先声明者优先

注:maven是可以自动解决jar包之间的依赖问题

四、Maven中统一管理版本号

可以将相关jar包的版本号设置在“<properties>”中,在<dependency>中的<version>中使用“${spring-version}”进行设置

    <properties>
        <spring-version>6.0.3</spring-version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>com.hh</groupId>
            <artifactId>helloFriend</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring-version}</version>
        </dependency>
    </dependencies>

五、Maven的继承

1、maven中使用继承的注意点:

父工程打包方式,必须是pom方式

2、maven继承方式一

在父工程中的pom.xml中导入jar包,在子工程中统一使用(即所有子工程强制引入父工程jar包)

3、maven继承方式二

子类中需要引入jar包时再引入(常用)

(1)父类中的“pom.xml”中

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

(2)子工程中的“<parent>”设置“<relativePath>”相对路径

<parent>
        <artifactId>maven_demo</artifactId>
        <groupId>com.hh</groupId>
        <version>1.0-SNAPSHOT</version>
        <relativePath>../pom.xml</relativePath>
</parent>

设置“依赖项”

<dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>
</dependencies>

注:用此方法继承,子工程中不能指定版本号

六、Maven的聚合

1、使用maven聚合的原因:

只要将子工程聚合到父工程中,就可以实现一个效果:安装或清除父工程,子工程会进行同步操作。(类似于绑定关系)

2、聚合的语法

在父工程的“pom.xml”中

<modules>
        <module>maven_helloworld</module>
        <module>HelloFriend</module>
        <module>MakeFriend</module>
</modules>

发表回复