groupId 和 artifactId 详解

本文详细解释了Maven中的groupId和artifactId在项目管理和命名中的作用,以及它们与包结构、jar包名称和name标签的关系。groupId类似Java包结构,artifactId标识项目模块,version表示版本,name提供用户友好的项目名,与jar包名称独立但有助于文档交流。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、基础知识必备

在这里插入图片描述

  • groupidartifactId被统称为"坐标"是为了保证项目唯一性而提出的,如果你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根据这两个id去查找。
  • groupIdartifactId是maven管理项目包时用作区分的字段,就像是地图上的坐标。
<groupId>org.example</groupId>
<artifactId>practice</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>practice Maven Webapp</name>
  • groupId:是公司项目组唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构。 groupId分为几个字段,例如org.example,前面的org叫【域】,后面的是你自己起的域名。
  • artifactId:是项目组中的某模块的唯一的标识符,实际对应小项目的名称。artifactId一般是项目名或者模块名。
  • version:指定了myapp项目的当前版本,SNAPSHOT意为快照,其中1.0是版本号。说明该项目还处于开发中,是不稳定的版本。而衍生的有Release版本则代表稳定的版本。
  • name:声明了一个对于用户更为友好的项目名称,不是必须的,推荐为每个pom声明name,以方便信息交流。

groupId一般分为多个段,这里我只说两段,第一段为域,第二段为公司名称。域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织,cn代表域为中国。举个apache公司的tomcat项目例子:这个项目的groupId是org.apache,它的域是org(因为tomcat是非营利项目),公司名称是apache,artigactId是tomcat。

2、groupId 和包结构的一般对应关系?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3、jar 包名称和 groupId 的关系?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、name 标签里的名称与什么有关系?

在这里插入图片描述
在这里插入图片描述

由以上对比可得出,name标签里的名称与jar包名称无关,jar包名称仍然取决于artifactId+version的组合

name标签里的名称与Maven产生的文档有关,这里的名称可以声明一个对于用户更为友好的项目名称,以方便信息交流。

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.6.4</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>nongyyy</artifactId> <version>0.0.1-SNAPSHOT</version> <name>nongyyy</name> <description>nongyyy</description> <url/> <licenses> <license/> </licenses> <developers> <developer/> </developers> <scm> <connection/> <developerConnection/> <tag/> <url/> </scm> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.33</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId>
最新发布
03-24
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值