一 依赖:(dependencies):
如果我们想要在项目中引入某些jar包只需要在该项目的pom.xml中引入该jar包的坐标,依赖关系为maven中最重要的部分,大部分使用maven都是要用到依赖。
二 maven坐标的组成:
groupld: 定义当前的项目的隶属组织名称(通常是域名反写 例如:com.qwe)
artifactld : 定义当前的maven项目名称(通常是模块名称 例如: order-service)
version:定义当前项目的版本号
三 依赖范围:
有一个 <scope>...</scope> 的设置,就是为依赖的范围通常默认的为compile。
作用范围:
主程序范围有效(main文件夹范围内)。
测试程序内有效(test文件夹有效)。
是否参与打包运行(package指令范围内有效)。
maven一般提供有六种范围的依赖 complie(因为时默认的可以省略) test provide runtime system import 不同的依赖的范围不同。
如下图是部分的依赖范围
四 依赖传递:
依赖具有传递性 如果A中添加对B的依赖,如果依赖范围是compile,则B所导入 的jar包A也可以直接使用从而无需再次导入,如果B中添加C的依赖,则A也可以直接使用C中的jar包。同时如果C中添加了依赖,根据传递性A和B中也都拥有相应的jar包。
五 排除依赖:
如果A中添加了对B的依赖,如果B中也添加了C的依赖,如果A中只想要B中的资源(因为C是不稳定的)从而并不想要C中的,则再A中添加B的依赖的下一行添加<exclusions>...不需要的jar的坐标...</exclusions>。
六 构建生命周期:
clean:移除上一次构建生成的文件
compile:编译项目源代码
test:使用合适的单元测试框架运行测试(junit)test内的类名必须为(以Test开头或结尾否则会测试时显示不出来)
package:将编译后的文件打包如jar war等
install:将安装项目到本地仓库