最近在复习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的区别。

重要注意事项:

  1. GroupId + ArtifactId 必须全球唯一(像域名一样)

  2. Version 变更时,需要更新所有依赖它的项目

  3. SNAPSHOT 版本:

    • 用于开发阶段

    • Maven 会每天检查更新

    • 不应该在生产环境使用

这三个属性共同构成了项目的 "Maven 坐标",是 Maven 生态系统中项目识别、依赖管理和版本控制的基础。

在实际开发中,像是公司自己搭建的私服maven,例如发布到Nexus中,这样我们在引用公司的包的时候只需要输入groupId,artifactId和version来决定我们要引用哪个版本的包。其他的maven的中央仓库的jar包也是使用这三个参数作为"访问坐标"来让我们可以精确引用到对应的包。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐