坐标(coordinate)
数学课本中的坐标,在平面中的坐标(x,y)能标明平面中的一点,(x,y,z)能找到空间立体中的一点。根据你的身份证地址能找到这个世界上独一无二的你。而在maven中,世界上任何一个构建(jar或者war)都能用maven坐标唯一标识,maven坐标包括groupId、artifactId、version、packaging、classifier。我们提供正确的坐标元素,maven就能找到对应的构建。在上个maven helloworld示例中,我们可以看到pom.xml文件中对junit jar的坐标。
当我们开发自己项目的时候,也需要为其定义适当的坐标,这是maven强制要求的。这样其他的maven项目才能够引用该项目生成的构建。
坐标详解
maven坐标为各种构建引入了秩序,任何一个构建都必须明确定义自己的坐标,一组maven坐标是通过一些元素定义的它们是groupId、artifactiId、version、packaging、classifier。我们来看上一个helloworld项目中的对junit坐标定义。
<span style="font-size:14px;"><span style="font-family:Microsoft YaHei;"><dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies></span></span>
groupId:定义maven项目隶属的实际项目。groupId一般定义到组织级别。也就是一个组织项目往往会被划分成很多的模块。
artifactId:该元素定义实际项目中的一个maven项目(或者模块)。
version:该元素定义mavne项目当前所处的版本。junit的版本是3.8.1。
packaging:定义maven项目的打包方式。默认是jar。
classifier:该元素用来帮助定义输出一些附属构建。附属构建与主构建对应,不能直接定义项目的classifier,因为附属构建不是项目直接生成的,而是由附加插件帮助生成的。
上述5个元素中,groupId、artifactId、version是必须定义的,packing是可选的(默认为jar),而classifier是不能直接定义的。
之后我们就可以进行依赖管理了。
依赖配置
如何配置项目对jar的依赖?
<project>
........
<dependencies>