【SpringBoot】搭建第一个SpringBoot项目 - group、artifact等项目元数据详解

简介: 【SpringBoot】搭建第一个SpringBoot项目 - group、artifact等项目元数据详解


环境:JDK 1.8、Spring Boot 2.6.12、Maven 3.8.1

Spring 官方提供了 Spring Initializr 来引导大家快速构建一个应用项目。

如下图所示,是我创建的一个 Spring Boot 项目:

1. 选择项目类型

选择项目类型:Maven Project、Gradle Project,本文创建的是 Maven 工程。

2. 选择编程语言

选择编程语言:Java、Kotlin、Groovy,本文使用的是 Java 语言

3. 选择Spring Boot版本

本文使用的是 Spring Boot 2.6.12 版本

4. 填写项目信息

  1. Group:项目组织唯一的标识符,通常分为多个段
这里介绍两段的用法:第一段为域,第二段为公司名称:
域又分为 org、com、cn 等,其中 org 为非营利组织,com 为商业组织,cn 表示中国
例如:apache 公司的 tomcat 项目:org.apache.tomcat
- Group 是 org.apache
- 域是 org(tomcat是非营利项目)
- 公司名称是 apache
- Artifact 是 tomcat
  1. Artifact:项目的唯一的标识符,就是项目的名称
- 例如 org.apache.tomcat
- Artifact 是 tomcat,就是项目的名称

Grounp + Artifact 就相当于项目的坐标,保证了项目的唯一性

  1. Name:默认同Artifact,声明了一个对于用户更为友好的项目名称,不是必须的
  2. Description:项目描述
  3. Package name:指定 main 目录里 java 下的包名称,默认为Group + Artifact
  4. Packaging:打包方式
  5. Java 版本

5. 添加依赖

6. 版本号

版本号,顾名思义,系统、架包、软件的标识号。版本号的数字信息通俗易懂,格式:

主版本号 + 次版本 +(修正版本号 build-可选)+(编译版本号-可选)+ 英文常见号(重点)

6.1 常见号

软件起源于国外,因此常见的版本号都是用英文标识的。

各种架包名,Maven 的依赖,官网 API 时,常见:GA、SNAP-SHOT、RELEASE、ALPHA、BETA、RC 等版本号。

6.2 Alpha、Beta、Gamma 版本

以下三者,在系统、架包、软件的开发过程中,使用。

  • Alpha:内测版,BUG 多,开发人员开发过程中使用,希腊字母α,第一,指最初版
  • Beta:早期版本,有缺陷,无大 BUG,可能加入新功能,进一步开发完善。
  • Gamma: 经 beta 版,完善修改,成为正式发布的候选版本(Release Candidate)

6.3 RC、GA、R 版本

  • RC:(Release Candidate):候选版本,几乎就是正式版了,一般需要 ASF 投票通过后,才会形成正式版本。
  • GA:(Ggeneral Availability):发行稳定版,官方推荐使用此版本。
  • R,RELEASE:正式版,等价于 GA。

6.4 SNAPSHOT版本

SNAPSHOT:快照版,可以稳定使用,且仍在继续改进版本。

SNAPSHOT 多见于架包依赖中,使用 Maven 时,需要的架包会去仓库 Nexus 中找。一个仓库一般分为 RELEASE 仓和 SNAPSHOT 仓快照版,前者为稳定正式版本,后者为非稳定版本。Maven 在构建项目时,会优先去远程仓库中查看是否有最新的 example-1.0-SNAPSHOT.jar,如果有则下载下来使用。即使本地仓库中已经有了 example-1.0-SNAPSHOT.jar,它也会尝试去远程仓库中查看同名的 jar 是否是最新的(有更新策略)。

有的人可能会问,这样不就不能充分利用本地仓库的缓存机制了吗?别着急,Maven 比我们想象中的要聪明。在配置 Maven 的 Repository 的时候中有个配置项,可以配置对于 SNAPSHOT 版本向远程仓库中查找的频率。频率共有四种,分别是:always、daily、interval、never

<repositories>
     <repository>
         <id>jboss</id>
         <name>JBoss Repository</name>
         <url>http://repository.jboss.com/maven2/</url>
         <releases>
             <enabled>true</enabled>
             <updatePolicy>always</updatePolicy>
             <checksumPolicy>fail</checksumPolicy>
         </releases>
         <snapshots>
             <enabled>true</enabled>
             <updatePolicy>always</updatePolicy>
             <checksumPolicy>fail</checksumPolicy>
         </snapshots>
     </repository>
 </repositories>

当本地仓库中存在需要的依赖项目时:

  • always 是每次都去远程仓库查看是否有更新;
  • daily 是只在第一次的时候查看是否有更新,当天的其它时候则不会查看;
  • interval 允许设置一个分钟为单位的间隔时间,在这个间隔时间内只会去远程仓库中查找一次;
  • never 是不会去远程仓库中查找(这种就和正式版本的行为一样了)。

6.5 其他版本

  • Alpha:内部测试版
  • Beta:外部测试版
  • Build:修正版
  • Corporation 或 Enterprise:企业版
  • Delux:豪华版
  • DEMO:演示版,有功能限制
  • Free:免费版
  • Full:完全版
  • Final:正式版
  • Pro(professional):专业版
  • Plus:加强版
  • Retail:零售版
  • Release:发行版,有时间限制
  • Shareware:共享版,虽然不会要求注册但是一般也有功能限制
  • SR:修正版
  • Trial:试用版(一般有时间或者功能限制)

另外,软件还有功能有别的版本,比如:Windows 有家庭版、专业版、旗舰版等。

相关文章
|
10天前
|
Java 容器
如何在SpringBoot项目中使用过滤器和拦截器
过滤器和拦截器是日常开发中常用技术,用于对特定请求进行增强处理,如插入自定义代码以实现特定功能。过滤器在请求到达 `servlet` 前执行,而拦截器在请求到达 `servlet` 后执行。`SpringBoot` 中的拦截器依赖于 `SpringBoot` 容器,过滤器则由 `servlet` 提供。通过实现 `Filter` 接口并重写 `doFilter()` 方法可实现过滤器;通过实现 `HandlerInterceptor` 接口并重写相应方法可实现拦截器。两者的主要区别在于执行时机的不同,需根据具体场景选择使用。
如何在SpringBoot项目中使用过滤器和拦截器
|
3天前
|
Java 关系型数据库 MySQL
创建一个SpringBoot项目,实现简单的CRUD功能和分页查询
【9月更文挑战第6天】该内容介绍如何使用 Spring Boot 实现具备 CRUD 功能及分页查询的项目。首先通过 Spring Initializr 创建项目并选择所需依赖;其次配置数据库连接,并创建实体类与数据访问层;接着构建服务层处理业务逻辑;最后创建控制器处理 HTTP 请求。分页查询可通过添加 URL 参数实现。
|
13天前
|
XML 前端开发 Java
还不会SpringBoot项目模块分层?来这手把手教你
本文详细介绍了如何为SpringBoot项目创建模块并进行合理的分层设计。通过逐步演示,从创建项目到构建各功能模块,再到具体代码实现,手把手教你实现整洁的代码分层。主要内容包括:创建依赖层、主启动层、模块层及其子模块(如共通层、控制器层、数据持久层等),并通过实例演示了从前端请求到后台服务调用的实际流程。适合SpringBoot初学者及有一定经验但需优化项目结构的开发者参考。
58 2
还不会SpringBoot项目模块分层?来这手把手教你
|
13天前
|
小程序 前端开发 Java
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
JavaDog Chat v1.0.0 是一款基于 SpringBoot、MybatisPlus 和 uniapp 的简易聊天软件,兼容 H5、小程序和 APP,提供丰富的注释和简洁代码,适合初学者。主要功能包括登录注册、消息发送、好友管理及群组交流。
36 0
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
|
22天前
|
JavaScript 前端开发 Java
SpringBoot + Vue 前端后分离项目精进版本
这篇文章详细介绍了一个基于SpringBoot + Vue的前后端分离项目的搭建过程,包括前端Vue项目的初始化、依赖安装、页面创建和路由配置,以及后端SpringBoot项目的依赖添加、配置文件修改、代码实现和跨域问题的解决,最后展示了项目运行效果。
SpringBoot + Vue 前端后分离项目精进版本
|
23天前
|
Java
SpringBoot项目配置热部署启动 及 热部署失效的问题解决
这篇文章介绍了如何在SpringBoot项目中配置热部署启动,包括在pom文件中添加热部署依赖、在IDEA中进行设置、修改配置文件以及IDEA启动设置,以解决热部署失效的问题。
SpringBoot项目配置热部署启动 及 热部署失效的问题解决
|
13天前
|
小程序 前端开发 JavaScript
【项目实战】SpringBoot+uniapp+uview2打造一个企业黑红名单吐槽小程序
【避坑宝】是一款企业黑红名单吐槽小程序,旨在帮助打工人群体辨别企业优劣。该平台采用SpringBoot+MybatisPlus+uniapp+uview2等技术栈构建,具备丰富的注释与简洁的代码结构,非常适合实战练习与学习。通过小程序搜索“避坑宝”即可体验。
34 0
【项目实战】SpringBoot+uniapp+uview2打造一个企业黑红名单吐槽小程序
|
13天前
|
JavaScript 前端开发 小程序
【项目实战】SpringBoot+vue+iview打造一个极简个人博客系统
这是一个基于 SpringBoot+MybatisPlus+Vue+Iview 技术栈构建的个人极简博客系统,适合初学者实战练习。项目包含文章分类、撰写文章、标签管理和用户管理等功能,代码简洁并配有详细注释,易于上手。此外,该项目也可作为毕业设计的基础进行二次开发。
53 0
【项目实战】SpringBoot+vue+iview打造一个极简个人博客系统
|
20天前
|
安全 Java 关系型数据库
毕设项目&课程设计&毕设项目:基于springboot+jsp实现的健身房管理系统(含教程&源码&数据库数据)
本文介绍了一款基于Spring Boot和JSP技术实现的健身房管理系统。随着健康生活观念的普及,健身房成为日常锻炼的重要场所,高效管理会员信息、课程安排等变得尤为重要。该系统旨在通过简洁的操作界面帮助管理者轻松处理日常运营挑战。技术栈包括:JDK 1.8、Maven 3.6、MySQL 8.0、JSP、Shiro、Spring Boot 2.0等。系统功能覆盖登录、会员管理(如会员列表、充值管理)、教练管理、课程管理、器材管理、物品遗失管理、商品管理及信息统计等多方面。
|
18天前
|
JavaScript Java 关系型数据库
毕设项目&课程设计&毕设项目:基于springboot+vue实现的前后端分离的考试管理系统(含教程&源码&数据库数据)
在数字化时代背景下,本文详细介绍了如何使用Spring Boot框架结合Vue.js技术栈,实现一个前后端分离的考试管理系统。该系统旨在提升考试管理效率,优化用户体验,确保数据安全及可维护性。技术选型包括:Spring Boot 2.0、Vue.js 2.0、Node.js 12.14.0、MySQL 8.0、Element-UI等。系统功能涵盖登录注册、学员考试(包括查看试卷、答题、成绩查询等)、管理员功能(题库管理、试题管理、试卷管理、系统设置等)。
毕设项目&课程设计&毕设项目:基于springboot+vue实现的前后端分离的考试管理系统(含教程&源码&数据库数据)