目录
基本概念
maven作用:管理jar包:下载、编译、保存、更新
坐标:存放jar包的路径
依赖:A jar包可能会依赖好多jar包,maven会管理所有的jar包
maven仓库
- 远程仓库:也称中央仓库,本质上就是一个国外网址
- 镜像仓库:就是一个国内的网址,已经帮你下载好了jar包
- 本地仓库:本质上就是你自己创建的一个文件夹,存放下载好的jar包
maven的jar包依赖的传递性
含义:maven的jar包内部会有一些依赖项,引入某些jar包可以自动依赖其他jar包
理解
- 用户添加jar包时,maven会根据jar包的坐标去本地仓库查找指定的jar包文件
- 找到jar包,并且实现jar包文件依赖
- 同时加载当前目录下的pom文件,通过标签加载其他依赖项
- 循环执行上述的操作,直到所有的jar包依赖完成位置
maven目录结构
maven提倡约定优于配置
项目代码放在mian下,测试代码放在test下,源代码放在java下,资源文件放在resources里;项目代码管理结构清晰,分工明确,各归其位,便于管理,最终便于程序的自动化;maven命令能一键执行其核心要点就依赖于此,maven如此,spring/springboot亦然
maven的三种工程
- pom工程:用在父工程或者聚合工程中,用来做jar包的版本控制
- war工程:web工程将会打包成war包发布到服务器上的和工程
- jar工程:别人写好的一些类你若使用将会打包成jar包,引入到你的项目中
maven命令
- compile:编译命令,会在你的项目目录下生成一个target目录,在该目录中会包含一个classes文件夹,里面全是生成的class文件
- package:这个命令会在你的项目路径下生成一个target目录,并且拥有compile命令功能进行编译,同时会在target目录下生成项目的war/jar文件
- install:该命令包含了package命令的功能,不但会在你的项目路径下生成class文件和jar包,同时也会在你的本地maven仓库生成jar文件供其他项目使用
- clean:执行该命令会删除项目路径下的target文件,但是不会删除本地maven仓库已经生成的jar文件
项目的生命周期
创建项目、编写项目、清理已编译的代码、编译代码、执行单元测试、打包、集成测试、验证部署、生成站点等这些环节组成了项目的生命周期,这些过程也叫项目的构建过程
maven将项目的生命周期抽象成了3套生命周期,每套生命周期又包含了多个阶段
- clean生命周期
- default生命周期
- site生命周期
上面这三套生命周期是相互独立的,没有依赖关系,每套生命周期又包含多个阶段,每套生命周期的多个阶段又是有相互顺序的,并且后面的阶段依赖前面的阶段
- clean生命周期的目的是清理项目
- default生命周期是maven的主要生命周期,主要用于构建应用
- site生命周期的目的是建立和发布项目站点,maven能够基于pom.xml所含的信息自动生成一个有好的站点,方便团队交流和发布项目信息
maven的使用
下载maven
配置settings.xml文件
设置本地仓库地址(存放我们的jar包)
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
-->
<!--本地仓库地址,存放jar包-->
<localRepository>C:/All/storehouse</localRepository>
mirrors内切换镜像仓库地址
<!--阿里私服地址-->
<mirror>
<id>ali</id>
<name>ali Maven</name>
<mirrorOf>*</mirrorOf>
<url>https://maven.aliyun.com/repository/public/</url>
</mirror>
maven在idea中的配置使用
pom.xml文件内的基本概念
<!--依赖集-->
<dependencies>
<!--项目依赖-->
<dependency>
<!--组id,一般是公司域名倒写-->
<groupId>mysql</groupId>
<!--项目id,一般是项目名称-->
<artifactId>mysql-connector-java</artifactId>
<!--jar包版本号-->
<version>5.1.48</version>
</dependency>
</dependencies>