1.java项目构建工具maven介绍
Maven是apache旗下的一个开源项目。Apache软件基金会,成立于1999年7月,是目前世界上最大的最受欢迎的开源(源代码开放)软件基金会也是一一个专门为支持开源项目而生的非盈利性组织。
apache开源项目网址: Welcome to The Apache Software Foundation!
maven功能:

使用maven生成的项目结构都是统一的,因此不管使用哪款开发软件,都可以将maven工程直接导入。

在IDEA中,右侧maven提供了指令用于编译、打包等功能,指令完成后会存放在target目录下,这些指令是跨平台的。

大体结构:

pom.xml中配置的一小段信息来描述maven工程。dependency中分别是当前依赖归属的组织,模块名称和版本。这三项信息就叫做坐标。添加坐标后,maven就会自动的从仓库中查找这个依赖,实际上坐标就是查找的路径:ch/qos/logback/log-classic/1.2.11

查找顺序:本地--远程(若存在的话)--中央

2.安装配置
安装步骤如下,配置阿里云私服是为了提高下载速度,因为中央仓库是放在国外的

3.依赖配置

如果没有提示依赖的信息,可以去中央仓库(https://mvnrepository.com/)查找这个依赖,里面有这个依赖的坐标信息直接复制粘贴就行了。

4.依赖传递
我们只引入了第一个依赖,后面两个依赖是自动引入的。这就是依赖传递

A依赖B,B依赖C,那么C也会传递到A中。绿色框的是直接依赖,黄色框是间接依赖。

如果不需要间接依赖,可以通过标签exclusion去断开依赖,并且不需要指定版本

5.依赖范围


6.生命周期

生命周期中有若干个阶段,一般只关注以下五个阶段。在同一生命周期中,后面的阶段基于前面的阶段,也就是运行后面(比如install)阶段时,compile--package都会运行。

maven是一个插件执行框架,当点击这些阶段时,实际上是运行了Plugins中的这些插件去完成了对应的工作。
