maven中,所有的构建均可以通过maven坐标唯一标志。
maven坐标包括:groupId、artifactId、version、packaging、classifier
groupId:
1.定义当前maven项目隶属的实际项目。注意:当前maven项目与实际项目不一定是一对一的,一个项目会被分为多个模块,如SpringFramework中,对应maven项目有spring-core、spring-context等。
2.groupId不应该对应项目隶属的组织或公司。因为一个组织会有多个项目。
3.表示方式与JAVA包名一致,常与域名一一对应。
artifactId:
1.定义实际项目中的一个maven项目(模块)。常用“实际项目名-模块名”做名称,方便寻找实际构建。
2.默认情况,maven生成的构建,文件名会以artifactId作为开头。
version:
1.定义maven项目当前所处的版本。需要注意的是,Maven定义了一套完成的版本规范,以及快照(SNAPSHOT)的概念。
packaging:
1.定义maven项目的打包方式,与文件拓展名对应,默认为jar。
2.打包方式会影响构建的生命周期。
classifier:
1.帮助定义构建输出的一些附属构件。附属构件与主构件对应。如主构件为a-2.0.0.jar,其可能通过一些插件生成如a-2.0.0-javadoc.jar等附属构件,包含Java文档
2.附属构件也有自己的唯一坐标
3.不能直接定义项目的classifier,因为负数构建不是项目直接默认生成的,而是由附加的插件帮助生成
以上五个元素,groupId、artifactId、version是必须定义的,packing是可选的,而classifier不能直接定义。
项目构件的文件名与坐标对应,一般的规则为artifactId-version[-classifier].packaging,[-classifier]表示可选