Maven坐标为各种构件引入了秩序,任何一个构件都必须明确自己的坐标,而一组
Maven坐标是通过一些元素定义的,它们是groupId,artifactId,version,packaging,classifier.
groupId :定义当前Maven项目隶属的实际项目。
artifactId :定义实际项目中的一个Maven项目(模块),推荐使用实际项目名作为前缀,比如:atom-common.
version: 定义Maven项目当前处于的版本。
packaging : 定义Maven项目的打包方式。该元素不定义的场合,默认为jar
classifier : 该元素用来帮助定义构建输出的一些附属构件.比如atom-common-2.0.0-doc.jar
<groupId>org.sonatype.nexus</groupId>
<artifactId>nexus-indexer</artifactId>
<version>2.0.0</version>
<packaging>jar</packaging>
Maven依赖
根元素project下的dependencies可以包含一个或者多个dependency元素,以声名一个或多个项目依赖。
依赖的基本坐标:groupId artifactId version
每个依赖还可以包含除基本坐标以外的元素:
type 依赖的类型
scope 依赖的范围
optional 标记依赖是否可选
exclusions 排除传递性依赖
Maven项目的传递性依赖可以帮助减少到处找jar包版本的麻烦。
依赖调解:
原则一:路径最近者优先
原则二:路径一样时,第一声名者优先
可选依赖,依赖优化等慢慢完善!!!