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>