Web后端基础(Maven基础)
https://blog.csdn.net/q20202828/article/details/148459525?spm=1001.2014.3001.5501
这是我总结了一下aliyun私服maven依赖配置+Maven
3.9.1下载安装的操作
Maven的作用
统一项目结构
Maven 还提供了标准、统一的项目结构 。
1). 未使用Maven
由于java的开发工具呢,有很多,除了大家熟悉的IDEA以外,还有像早期的Eclipse、MyEclipse。而不同的开发工具,创建出来的java项目的目录结构是存在差异的,那这就会出现一个问题。
Eclipse创建的java项目,并不能直接导入IDEA中。 IDEA创建的java项目,也没有办法直接导入到Eclipse中。
Maven模型
- 项目对象模型 (Project Object Model)
- 依赖管理模型(Dependency)
- 构建生命周期/阶段(Build lifecycle & phases)
1). 构建生命周期/阶段(Build lifecycle & phases)
以上图中紫色框起来的部分,就是用来完成标准化构建流程 。当我们需要编译,Maven提供了一个编译插件供我们使用;当我们需要打包,Maven就提供了一个打包插件供我们使用等。
2). 项目对象模型 (Project Object Model)
以上图中紫色框起来的部分属于项目对象模型,就是将我们自己的项目抽象成一个对象模型,有自己专属的坐标,如下图所示是一个Maven项目:
坐标,就是资源(jar包)的唯一标识,通过坐标可以定位到所需资源(jar包)位置。
坐标的组成部分:
- groupId: 组织名
- arfitactId: 模块名
- Version: 版本号
3). 依赖管理模型(Dependency)
以上图中紫色框起来的部分属于依赖管理模型,是使用坐标来描述当前项目依赖哪些第三方jar包。
之前我们项目中需要jar包时,直接就把jar包复制到项目下的lib目录,而现在我们只需要在pom.xml中配置依赖的配置文件即可。 而这个依赖对应的jar包其实就在我们本地电脑上的maven仓库中。
导入依赖和排除导入依赖
<dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>6.1.4</version><exclusions><exclusion><groupId>io.micrometer</groupId><artifactId>micrometer-observation</artifactId></exclusion></exclusions></dependency>
</dependencies>
:::warning
注意事项:
- 如果引入的依赖,在本地仓库中不存在,将会连接远程仓库 / 中央仓库,然后下载依赖(这个过程会比较耗时,耐心等待)
- 如果不知道依赖的坐标信息,可以到mvn的中央仓库(https://mvnrepository.com/)中搜索
:::
生命周期:
Maven的生命周期就是为了对所有的maven项目构建进行抽象和统一
在同一套生命周期中,当运行后面的阶段时,前面的阶段都会运行。
执行指定生命周期的两种方式:
在idea中,右侧的maven工具栏,选中对应的生命周期,双击执行。
在命令行中,通过命令执行。
maven的执行都是通过插件实现的
Maven对项目构建的生命周期划分为3套(相互独立):
- clean:清理工作。
- default:核心工作。如:编译、测试、打包、安装、部署等。
- site:生成报告、发布站点等。
我们常用的并不多,主要关注以下几个:
- clean:移除上一次构建生成的文件
- compile:编译项目源代码
- test:使用合适的单元测试框架运行测试(junit)
- package:将编译后的文件打包,如:jar、war等
- install:安装项目到本地仓库