Springboot项目结构浅析

每当我们通过IDE、spring官网gui或者maven命令行创建SpringBoot项目后,大致会有如下结构的项目,这个时候第一个念头就是对于默认创建的内容,我需要保留哪些,哪些删除掉。针对这个问题,本文对于陌生内容作出解释说明,对于项目必要内容,诸如src、pom.xml之流就不做解释,重点解释其它内容;

1、.gitignore文件

由于目前大多数应用开发使用git作为代码版本管理工具,所以官方默认提供该文件,作为不纳入git版本管理项的初始配置文件,里面定义了最常见的文件或目录的版本控制忽略名单,大致内容如下。由于是定义最常见的配置,所以一般开发中我们都需要根据项目实际情况(IDE、插件等)进行修改,添加我们自己需要的忽略配置,该文件没什么其他作用,总的来说有胜于无吧!

HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr

### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/

### VS Code ###
.vscode/

2、HELP.md文件

首先解释下.md文件,全称是Markdown,是一种轻量级标记语言。自从被Github纳入规范之后,大部分项目都需要一个md格式的帮助说明文档,用来对项目架构、框架和操作手册等内容进行说明。想必spring官方也考虑到了这点,在项目新建后默认提供HELP.md文件。

3、Maven Wrapper相关文件,注意:这个部分介绍的不是某一个文件,而是由.mvn目录下内容、执行脚本mvnw和mvnw.cmd组成的;

在正式说明之前考虑这么一个场景:我们都知道mave有好多版本,大版本分为Maven1、Maven2、Maven3.0.X和Maven3.1+,小版本更是多达几十种,如下图所示:

每推出一个版本意味着相比上代版本肯定有改变,诸如修复BUG、性能优化、移除过期命令和新增命令等。开发者电脑上一般会配置一两个版本的maven或者使用gradle代替并没有配置maven,那么比如接手的项目会用到的一些maven新特性恰巧是你开发环境中的maven没有的(因为版本差异或吴佩芝),我们通常的做法是打开浏览器从官网先下载二进制文件,下载完毕后修改配置和配置环境变量等一系列操作,然后再通过IDE引用收工。那么有没有一种方式,随项目而来,如果本地没有时只通过简单的操作就可以实现上述诸如下载、配置、运行等操作,肯定是有的,Maven Wrapper就是这么一种简单的Maven构建方式,运行环境不需要提前安装Maven二进制文件,在需要的时候运行脚本即可;

  • .mvn/wrapper/maven-wrapper.jar:通过mvnw和mvnw.cmd脚本引导,用于从Maven官方下载Maven的zip安装包,诸如:apache-maven-3.6.3-bin.zip
  • .mvn/wrapper/maven-wrapper.properties:内容如下,定义了Maven Wrapper和Maven的下载地址。
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar
  • mvnw和mvnw.cmd:这两个文件具有相同的职责,引导maven-wrapper.jar从maven-wrapper.properties 中的distributionUrl下载maven安装包到本地,然后解压缩到指定文件夹,在将bin目录下的mvn脚本授予执行权限,大家可以通过执行下述命令查看命令行输出:
mvnw spring-boot:run
  • .mvn/wrapper/MavenWrapperDownloader.java:这个类的作用是当Maven Wrapper不存在时,通过该类下载Maven Wrapper。执行过程是从maven-wrapper.properties配置中找到wrapper下载url,然后从rul下载maven-wrapper.jar到本地指定文件夹中,具体执行过程请参照源码。

总结下:

  1. Maven Wrapper:提供了一种简单构建Maven的方式,即运行环境不需要提前安装配置Maven,实现自动安装配置Maven的方式;
  2. 实际开发过程中,一般由IDE引用提前配置的Maven,几乎用不到Maven Wrapper,所以第三部分讲解的内容酌情可删除;

以上,完了!

猜你喜欢

转载自blog.csdn.net/yu102655/article/details/112053175