Maven坐标简介
Maven坐标介绍
能够确定一个点在空间的位置的一个或一组数,叫做这个点的坐标。通常由这个点到垂直相交的若干条固定的直线的距离来表示 。这些直线叫做坐标轴。坐标轴的数目在平面上为二维空间的(x,y),在空间里为三维(x,y,z)。
Maven的核心功能就是管理项目的依赖,引入我们所需的各种jar包等。为了能自动化地解析任何一个Java构件,Maven必须将这些jar包或者其他资源进行唯一标识,这是管理项目的依赖的基础,也就是我们要说的坐标。包括我们自己开发的项目,也是要通过坐标进行唯一标识的,这样才能才其它项目中进行依赖引用。
Maven坐标的组成
以MyBatis的坐标为例:
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
groupId表示组织标识。 groupId定义当前Maven项目隶属的组织机构。举个例子,如果你的公司是mycom,有一个项目为myapp,那么groupId就应该是com.mycom.myapp
。groupId的表示方式与Java包名的表示方式类似。
artifactId表示项目名称。该元素定义当前实际项目中的一个Maven项目(模块),推荐的做法是使用实际项目名称作为artifactId的前缀。比如上例中的mybatis,mybatis就是实际的项目名称,方便而且直观。在默认情况下,maven生成的构件,会以artifactId作为文件头,如mybatis-3.5.2.jar,使用实际项目名称作为前缀,就能方便的从本地仓库找到某个项目的构件。
version表示项目的当前版本。
补充介绍:
packaging表示项目的打包方式。最为常见的jar和war两种,默认是jar。定义Maven项目打包的方式,使用构件的什么包。首先,打包方式通常与所生成构件的文件扩展名对应,如上例中没有packaging,则默认为jar包,最终的文件名为mybatis-3.5.2.jar。
classifier用来帮助定义构建输出的一些附件。附属构件与主构件对应,如上例中的主构件为mybatis-3.5.2.jar,该项目可能还会通过一些插件生成如mybatis-3.5.2-javadoc.jar,mybatis-3.5.2-sources.jar,这样附属构件也就拥有了自己唯一的坐标。
上述5个元素中,groupId、artifactId、version是必须定义的,packaging是可选的(默认为jar),而classfier是不能直接定义的,需要结合插件使用。