任何一个构件都可以使用maven坐标唯一标识,Maven坐标元素包括:groupId,artifactId,version,package,classifier:
<dependency>
<groupId>org.sonatype.nexus</groupId>
<artifactId>nexus-indexer</artifactId>
<version>2.0.0</version>
<package>jar</package>
</dependency>
Maven会根据这些坐标到中央仓库下载需要的构件。
groupId:定义当前Mavne项目隶属的实际项目。他俩不是一对一的关系。一个实际项目往往会划分很多模块。而Maven只是其中之一。
artifactId:定义实际项目中的一个maven项目(模块)。使用实际项目名称作为前缀,以示区别。
version:定义maven项目当前所处的版本。
package:定义mavne项目的打包方式(jar,war)。当不使用package时,默认值是jar。
classifier:定义构建输出的一些附属构建。不能直接定义项目的classifier,因为附属构建不是项目直接默认生成的,它是由附加的插件帮助生成的。
groupId,artifactId,version是必须定义的,package是可选的,而classifier是不能直接定义的。
项目构件的文件名是与坐标相对应的,一般的规则是:
artifactId-version[-classifier].package