Maven坐标
Maven的世界中拥有数量巨大的构件,也就是平时用的一些jar, war等文件。
每一个构件都可以使用Maven坐标唯一标识。
一组Maven坐标是通过这些元素定义的: groupId, artifactId, version, packaging, classifier。
<groupId>org.sonatype.nexus</groupId>
<artifactId>nexus-indexer</artifactId>
<version>2.0.0</version>
<packaging>jar</packaging>
坐标元素:
- groupId
定义当前Maven项目隶属的实际项目。groupId不应该对应项目隶属的组织或公司,一个组织下会有多个实际项目。groupId为 org.sonatye.nexus, org.sonatye表示Sonatype公司, nexus表示Nexus这一实际项目, 该groupId与域名nexus.sonatype.org对应。 - artifactId
定义实际项目中的一个Maven项目(模块),推荐使用实际项目名称作为articactId的前缀, 比如 nexus-indexer, 为了方便寻找实际构件。 - version
当前所处的版本 - packaging
项目的打包方式,通常与生成构件的文件扩展名对应, 比如 jar包, war包,当不定义时,默认为jar包 - classifier
该元素用来帮助定义构建输出的一些附属构件。附属构建使用一些插件生成,比如生成nexus-indexer-2.0.0-javadoc.jar
,nexus-indexer-2.0.0-sources.jar
, javadoc和 sources包含了java文档和源代码,属于附属构建。
上述5个元素中, groupId, artifactId, version是必须定义的, packaging是可选的,而classifier不能直接定义。
项目构件名称
构件名称与坐标相对应:
artifactId-version[-classifier].packaging
[-classifier]表示可选。
比如上面构件为 nexus-indexer-2.0.0.jar
packaging并非一定与构件扩展名对应,比如packaging为maven-plugin
的构件扩展名为jar。