一、Maven 有三个生命周期
分别为默认生命周期、清理生命周期和站点生命周期。
1.1 默认生命周期
用来定义项目构建的过程
包含以下几个过程:
- Validate - 校验一个项目是一个正确的Maven项目
- Compile - 编译代码
- Test - 测试src/test/java中的方法,该内容只用于测试,不会进行打包部署
- Package - 将项目打包为可执行的jar、war等二进制软件包
- Install - 将软件包安装到本地仓库
- Deploy - 将软件包部署到远程仓库
1.2 清理生命周期
用来定义项目清理的过程
包含以下三个过程:
- Pre-clean - 在清理项目前执行一些东西
- Clean - 清理项目,例如删除target包
- Post-clean - 在清理项目后执行一些东西
1.3站点生命周期
用来定义站点发布的过程
包含以下几个过程:
- Pre-site - 在生成站点文档前执行一些东西
- Site - 生成站点文档
- Post-site - 在生成站点文档后、部署站点文档前执行一些东西
- Site-deploy - 部署站点文档
参考图为IDEA IntelliJ中Maven的默认生命周期
二、 Maven依赖的三大原则
规则:
- 依赖要设置对应的版本号,子pom内声明的依赖优先于父pom中的依赖
- 当依赖包找不到时,应分析具体是那个包,在哪个仓库中找不到,到远程仓库中确认是否存在。或者确认settings.xml中的用户密码是否有权限。
2.1 第一声明原则
在pom.xml配置文件中,如果有两个名称相同,版本的不同依赖声明,先写的会生效,所以先声明自己要用的版本。这里的名称相同,版本不同的依赖声明,既可以是直接依赖,也可以是传递依赖。
例如,b引用了a的0.0.1版本,c引用了b的0.0.2版本,如果我们想用的版本是0.0.1版本,那么可以将b的版本依赖放在c的前面。
2.2 路径优先原则
直接依赖优于传递依赖。如果传递依赖的Jar包版本冲突了,那么可以单独声明一个指定版本的依赖Jar包,即可解决冲突。例如&