Maven的坐标是用来确定maven世界里的一个构件(可以使一个jar,一个插件...),maven的坐标是由一组元素确定的,他们是groupId,artifactId,version,packaging,classifier。
先看一个例子
<groupId>org.sonatype.nexus</groupId>
<artifactId>nexus-index</artifactId>
<version>2.0.0</version>
<packaging>jar</packaging>
groupId:定义当前项目隶属的实际项目。
atrifactId:定义实际项目中的一个Maven项目(模块),推荐的做法是使用实际项目名称作为artifactId的前缀。
version:定义Maven项目当前所在的版本。
packaging:定义Maven项目的打包方式,不定义packaging的时候默认是jar。
classifier:用来帮助定义构建输出一些附属构件。附属构件与主构件是对应的,如上例子主构件时nexus-index-2.0.0.jar,该项目还会使用一些插件生成如nexus-index-2.0.0-java.doc.jar,nexus-index-2.0.0.source.jar。
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
json-lib是需要区分jdk版本的,pom.xml中的配置应加上标签classifier指定jdk版本,如用jdk15
上述5个元素中,groupId,artifactId,version 是必须的,packaging是可选的,classifier是不能直接定义的。
同时,项目构件的文件名是与坐标相对应的,一般规则是artifactId-version[-classifier].packaging 。