2023-01-08

一、Maven的核心概念

1、仓库

(1)仓库的分类

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

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

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

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

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

(2)仓库中包含的文件

①maven的插件

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

③自己研发的项目或模块

二、maven的坐标

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

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

②:当前项目的模块名称

③:当前模块的版本

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

(3)应用

坐标的参考网址:

http://mvnrepository.com

打开网址

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

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

三、maven的依赖管理

1、依赖范围(即“pom.xml”中的“”中的“”的“”标签的值)

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

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

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

2、依赖传递性

(1)依赖原则:

路径最短者优先

先声明者优先

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

四、Maven中统一管理版本号

可以将相关jar包的版本号设置在“”中,在中的中使用“${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>        <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>