【JavaWeb】maven依赖管理
前言
记录学习JavaWeb课程中的部分知识点,包括maven依赖管理、maven高阶、Mybatis、SpringBoot自动配置等。本篇是关于maven对依赖包管理的内容。
maven依赖管理
依赖配置
在项目的 pom.xml 中配置对应的依赖(当前项目运行需要的 jar 包),包括项目组织名、依赖包名及对应版本。
1 | <dependencies> |
groupid和artifactId被统称为“坐标”,是为了保证项目唯一性而提出的,如果你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根据这两个id去查找。groupId:groupId分为几个字段,例如org.apache.tomcat,前面的 org 叫做域,后面的是项目组织者起的域名,tomcat.apache.org正是tomcat的官网。
artifactId:artifactId一般是项目名或者模块名。(可以浅显地理解为 依赖包的名称)
域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织。举个apache公司的tomcat项目例子:这个项目的groupId是org.apache.tomcat,它的域是org(因为tomcat是非营利项目),公司名称是apache,artigactId是tomcat。
一般来说,包名根目录 = groupId + artifactId。这个是不允许和别人重复的,尤其是需要上线的项目。一般公司为了不重复都会注册一个域名(URL用的那种),这样就肯定不会重复了。
配置完成后,点击maven管理的刷新按钮,即可载入对应依赖(从本地仓库引入 或者 从远程仓库下载后引入)
依赖传递
依赖具有传递性
- 直接依赖:在当前项目中通过依赖配置建立的依赖关系
- 间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源
1 | <depencies> |
这里将Spring Boot测试启动器spring-boot-starter-test添加到项目的依赖项中,并在该依赖项中排除Junit Vintage引擎依赖项junit-vintage-engine,以便使用其他测试框架,其中scope的含义见依赖范围。
依赖范围
scope参数含义:
compile:参与程序的运行、测试及打包,留空时默认为compiletest:只在测试程序范围有效,不参与主程序和打包provided:不参与打包runtime:不参与主程序
生命周期
当点击
install时,maven会自动运行compile、test、package、install整个阶段。








