Maven 中的groupId,artifactId,version标签的作用以及含义
最近在复习java的时候,因为平常一直开发使用SpringBoot,但是对Spring框架的开发还不是很了解,因此想从零开始创建一个Spring项目,在使用maven创建的时候需要填写下面三个参数,分别是groupId,groupId和version。

这三个参数很熟悉吧,其实我一开始也没反应过来,这其实就是我们在maven的<dependencies>标签中引用其他依赖的时候所对应的三个参数。
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc11</artifactId>
<version>23.26.0.0.0</version>
</dependency>
这三个属性是 Maven 项目坐标(Coordinates) 的核心部分,决定了项目的唯一标识和版本管理。
groupId(组ID)
这个属性决定了一个项目或者组织的唯一标识,例如我想做一个oracle的jdbc连接。那么我的名称就可以命名为com.oracle.database.jdbc。同时他也是包结构的基础,通常用于项目中包的基础结构。例如:
我们自己创建的springboot项目设置包的基础结构的时候,就会自动在生成的文件中,将groupId的值变为我们输入的基础包结构名,这是一种规范,两者之间没有什么对应关系,包名结构和groupId的内容可以不一致。

这个命名通常使用反向域名格式。
- 常见的命名格式
- com.公司名
- org.组织名(org.springframework)
- io.github.用户名(GitHub项目)
作用:groupId有助于区分不同组织或项目组开发的项目,确保了项目的全局唯一性。
artifactId(构件ID)
这个id一般是决定了项目的名称,还是以上面的依赖为示例,我的项目名称叫ojbdc11。
作用:artifactId 用于在同一个 groupId下区分不同的项目或模块。
version
version顾名思义就是项目的或者依赖的版本号,其中SNAPSHOT代表开发中的意思。

作用:决定项目的版本,一个项目不同的版本像是jdk8,jdk17的区别。
重要注意事项:
-
GroupId + ArtifactId 必须全球唯一(像域名一样)
-
Version 变更时,需要更新所有依赖它的项目
-
SNAPSHOT 版本:
-
用于开发阶段
-
Maven 会每天检查更新
-
不应该在生产环境使用
-
这三个属性共同构成了项目的 "Maven 坐标",是 Maven 生态系统中项目识别、依赖管理和版本控制的基础。
在实际开发中,像是公司自己搭建的私服maven,例如发布到Nexus中,这样我们在引用公司的包的时候只需要输入groupId,artifactId和version来决定我们要引用哪个版本的包。其他的maven的中央仓库的jar包也是使用这三个参数作为"访问坐标"来让我们可以精确引用到对应的包。
更多推荐




所有评论(0)