版权声明:欢迎大家转载,指正。 https://blog.csdn.net/yin__ren/article/details/81707204
1. maven 坐标:groupId, artifactId, version, packaging, classifier
- groupId: 定义当前 maven 项目隶属的实际项目,如:
src/java/main
下的com.liu.test
(注: 一般是公司域名的倒序) - artifactId: 项目的唯一 ID (注: 推荐使用实际项目名称做为 artifactId 的前缀,如 xxx-xxx)
- version: 定义 maven 项目当前所处的版本
- packaging: 该元素定义 maven 项目的打包方式
- classifier: 用来帮助定义构建输出的一些附属构件,由maven插件决定,不能像前几个属性一个样直接定义值
2. maven 依赖字段
- groupId, artifactId, version:
依赖的基本坐标
- type:
依赖的类型
,对应于项目坐标定义的 packaging,默认为 jar - scope:
依赖的范围
- compile:
编译依赖范围(默认值)
,编译依赖范围对于编译,测试,运行三种 classpath 都有效 - test:
测试依赖范围
,测试依赖范围只对测试 classpath 有效,在编译主代码或运行项目的使用时将无法使用 - provided:
已提供依赖范围
,已提供依赖范围对于编译和测试 classpath 有效,但在运行时无效 - runtime:
运行时依赖范围
,运行时依赖范围对于测试和运行 classpath 有效,但在编译主代码时无效 - system:
系统依赖范围
,系统依赖范围 使用时必须通过 systemPath 元素显示的指定依赖文件的路径(由于此类依赖不是通过 maven 仓库解析的,而且往往与本机绑定) - import:
导入依赖范围
,该依赖范围不会对三种 classpath 产生实际的影响
- compile:
- optional:
标记依赖是否可选
,解决依赖传递与依赖调解 - exclusions:
排除传递性依赖