1.为什么要定义Maven坐标
在我们开发Maven项目的时候,需要为其定义适当的坐标,这是Maven强制要求的。在这个基础上,其他Maven项目才能应用该项目生成的构件。
2.Maven坐标详解
Maven坐标为各种构件引入了秩序,任何一个构件都必须明确定义自己的坐标,而一组Maven坐标是通过一些元素定义的,它们是groupId,artifactId,version,packaging,class-sifer。下面是一组坐标定义:
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<packaging>jar</packaging>
<version>0.0.1-SNAPSHOT</version>
下面讲解一下各个坐标元素:
groupId :定义当前Maven项目隶属的实际项目。首先,Maven项目和实际项目不一定是一对一的关系。比如SpringFrameWork这一实际项目,其对应的Maven项目会有很多,如spring-core,spring-context等。这是由于Maven中模块的概念,因此,一个实际项目往往会被划分成很多模块。其次,groupId不应该对应项目隶属的组织或公司。原因很简单,一个组织下会有很多实际项目,如果groupId只定义到组织级别,而后面我们会看到,artifactId只能定义Maven项目(模块),那么实际项目这个层次将难以定义。最后,groupId的表示方式与Java包名的表达方式类似,通常与域名反向一一对应。
artifactId : 该元素定义当前实际项目中的一个Maven项目(模块),推荐的做法是使用实际项目名称作为artifactId的前缀。比如上例中的my-app。
version : 该元素定义Maven项目当前的版本
packaging :定义Maven项目打包的方式,首先,打包方式通常与所生成构件的文件扩展名对应,如上例中的packaging为jar,最终的文件名为my-app-0.0.1-SNAPSHOT.jar。也可以打包成war, ear等。当不定义packaging的时候,Maven 会使用默认值jar
classifier: 该元素用来帮助定义构建输出的一些附件。附属构件与主构件对应,如上例中的主构件为my-app-0.0.1-SNAPSHOT.jar,该项目可能还会通过一些插件生成如my-app-0.0.1-SNAPSHOT-javadoc.jar,my-app-0.0.1-SNAPSHOT-sources.jar, 这样附属构件也就拥有了自己唯一的坐标
分享到:
相关推荐
Maven实战 高清 Maven实战 高清 Maven实战 高清 Maven实战 高清 Maven实战 高清 Maven实战 高清 Maven实战 高清 Maven实战 高清 Maven实战 高清
Maven实战Maven实战Maven的安装、配置及使用入门
maven 实战 所有源代码
Maven实战 好书 学习参考.pdf
真实,绝对完整版 Maven 实战.pdf
Maven实战.pdf 不可多得的权威maven中文书籍
Maven实战
非常好的一本maven书 Maven实战 完整高清版
Maven实战(基于Maven3).pdf(340页)
Maven 实战(361)_12804356.pdf
《Maven实战》徐晓斌 完整高清版.pdf
maven的setting配置文件详解。。。。
Maven实战为许晓斌著。资源里面包括Maven实战pdf、程序所带源码。在eclipse开发时,需要下载m2e,下载地址http://download.eclipse.org/technology/m2e/releases/。eclipse 4.5 以上版本带的有Maven 插件,在下载m2e...
《Maven实战》 许晓斌
Maven实战].许晓斌.高清PDF扫描版.
Maven实战(高清完整带书签).pdf
Maven实战书上附带的源代码
项目管理,maven实战教程,提高对项目的管理和配置,改进项目效率