一、坐标定义
maven坐标其实是一组用来标识构件唯一性的元素组合,通过坐标,我们就能从maven库从引用指定的jar包、war包等maven构件。
二、坐标的组成元素及讲解
1.groupId:
如果说是组ID的话,这样对初学者会造成困惑,其实可以可理解为项目名。
首先,我们要有一个概念:maven的模块思想。
一个项目,会有多个功能,通过maven工程的构建,我们可以把每个大功能分为一个模块来构建,这样一来,一个项目就由多个maven模块组成,而每个模块又都是属于同一个项目下的。所以,这个groupId,可以说就是各个子模块的根节点。
命名举例:com.resource.manager (接下来会围饶这个命名来讲)
2.artifactId:
maven项目中的一个子模块名。
一般artifactId命名的规则,我们会根据groupId的命名,截取groupId的最后一个组成部分(例如 com.resource.manager 的最后一部分 manager ),作为artifactId命名的一个开始前缀,这样是为了能更容易定位到这个模块是哪个项目下的。
比如有很多个项目,都命名成copy.jar,那我们看包名,会很难分清,除非进jar包查看源码。如果命名为:manager-copy,那么,很容易让人联想到它是com.resource.manager下的一个模块。如果该模块下有web层、service层,则大概目录结构如下所示:
com
|-resource
|-manager
|-copy
|-web
|-service
3.version:
项目当前的版本。
4.packaging:
(可选)项目的打包方式,maven默认是jar,如果使用war打包,则会生成一个**.war后缀的文件。
5.classifier:
(可选)用来定义构建输出与主构件对应的附属构件。其实就是生成项目对应的文档 或 源码包
如java文档 resource-manager-0.0.1-javadoc.jar、项目源码包resource-manager-0.0.1-source.jar。
注意,不能直接定义项目的classifier,因为附属构件是maven插件帮助生成的,不是项目直接直接生成的。