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,

近期更新的文章:

推荐一款文本编辑器的主题

Oracle中number数据类型的存储机制

MySQL的replace into的功能场景

MySQL不规范的库表大小写带来的问题场景

MySQL批量导入数据表空间膨胀的一问题场景

近期的热文:

"红警"游戏开源代码带给我们的震撼

文章分类和索引:

公众号1100篇文章分类和索引

以上是关于maven基础知识的主要内容,如果未能解决你的问题,请参考以下文章

Maven实战:Maven生命周期

Maven实战:Maven生命周期

如何编写maven plugin 基础

MavenMacBook安装Maven并配置环境亲测有效

Maven 基础知识总结笔记

Maven 基础知识总结笔记