maven基础知识
Posted bisal(Chen Liu)
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maven基础知识相关的知识,希望对你有一定的参考价值。
当Java开发同学需要增加一些构件的时候,maven已经成为了不二的选择,一些maven基础还是需要了解和掌握的。
一、groupId和artifactId
构建maven工程,两个基础名词groupId和artifactId,最容易混淆,他们都是有各自的含义和功能的。
(1)groupId
含义是the unique identifier of the organization or group that created the project,GroupID是项目组织唯一的标识符,实际对应Java的包的结构,是main目录里java的目录结构。
(2)artifactId
含义是the unique base name of the primary artifact being generated by this project,ArtifactID是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。
二、maven坐标
maven的世界中拥有数量非常巨大的构件,就是平时用的一些jar、war等文件。
maven定义了这样一组规则:世界上任何一个构件都可以使用maven坐标唯一标志,maven坐标的元素包括groupId、artifactId、version、package、classifier。
只要在pom.xml文件中配置好dependancy的groupId、artifact、verison、classifier,maven就会从仓库中寻找相应的构件供我们使用。
但是maven是从哪里下载构件的?答案很简单,maven内置了一个中央仓库的地址(http://repol.maven.org/maven2),该中央仓库包含了世界上大部分流行的开源项目构件,maven会在需要的时候去这儿下载。
<groupId>com.comp.app</groupId>
<artifactId>maven_test</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>common_maven</name>
groupId定义当前maven项目隶属的实际项目,或者说定义了项目属于哪个组,groupId的表示方式与Java包名的表示方式类似,例如,如果公司是comp,有一个项目为app,那么groupId就应该是com.comp.app。
artifactId定义了当前maven项目在组中唯一的ID,或者说定义实际项目中的一个maven项目(模块),例如maven_test等,推荐的做法是使用实际项目的名称作为artifactId的前缀。 默认情况下,maven生成的构件,其文件名会以artifactId作为开头,例如maven_test-2.0.0.jar。
version指定了app项目的当前版本,SNAPSHOT意为快照,说明该项目还处于开发中,是不稳定的版本。
packaging是可选的,当不定义packaging时,maven会使用默认值jar。
name声明了一个对于用户更为友好的项目名称,不是必须的,推荐为每个pom声明name,以方便信息交流。
classifier,该元素用来帮助定义构件输出的一些附属构件。
因此,项目构件的文件名是坐标相对应的,一般的规则为,
artifact-version.packaging
参考资料,
https://www.cnblogs.com/gentlescholar/p/15553132.html
如果您认为这篇文章有些帮助,还请不吝点下文章末尾的"点赞"和"在看",或者直接转发pyq,
近期更新的文章:
近期的热文:
文章分类和索引:
以上是关于maven基础知识的主要内容,如果未能解决你的问题,请参考以下文章