每当我们通过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,所以第三部分讲解的内容酌情可删除;

以上,完了!

Springboot项目结构浅析相关推荐

  1. boot sprint 项目结构_完美起航-【知识】SpringBoot项目结构目录

    Spring boot 目录结构 一.主要目录 目录名称相对路径主要用途源码目录src\main\java存储源码 资源目录src\main\resources存储静态资源.动态页面.配置文件 测试目 ...

  2. springboot项目结构_从零搭建Spring Boot脚手架(1):开篇以及技术选型

    1. 前言 目前Spring Boot已经成为主流的Java Web开发框架,熟练掌握Spring Boot并能够根据业务来定制Spring Boot成为一个Java开发者的必备技巧,但是总是零零碎碎 ...

  3. springboot项目层次结构_Springboot项目结构Springboot项目结构

    运用Spring Boot 在start.spring.io可以直接下载Spring Boot项目 | | pom.xml | | \---src +---main | +---java | | \- ...

  4. springboot项目结构

    一,代码层结构 domain: 数据库实体类(也有使用pojo和entity) dao: 数据接口访问层 service: 数据服务接口层 impl: 数据服务接口实现层 controller: 控制 ...

  5. 一图看懂SpringBoot项目结构

  6. springboot项目使用WireMock伪造REST服务

    目录 一.WireMock官网 一.下载并启动WireMock 三.springboot项目开发WireMock客户端 一.WireMock官网 官网地址:http://wiremock.org/ W ...

  7. 六十一、分析Springboot中的项目结构介绍

    @Author:Runsen 来源:尚硅谷 下面建议读者学习尚硅谷的B站的SpringBoot视频,我是学雷丰阳视频入门的. 具体链接如下:B站尚硅谷SpringBoot教程 文章目录 spring项 ...

  8. SpringBoot项目目录结构(工程结构)

    SpringBoot项目目录结构 一.代码层结构 根目录:com.bajins 二.资源目录结构 根目录:resources 三.mybatis项目结构示例 阿里巴巴Java开发手册见: https: ...

  9. Dubbo的Api+Provider+Customer示例(IDEA+Maven+Springboot+dubbo) 项目结构

    项目结构 dubbo-demo dubbo-api:提供api接口,一般存储实体类和接口服务 dubbo-provider:dubbo生产者提供服务,一般存储接口具体实现 dubbo-customer ...

最新文章

  1. 前端测试 karma mocha should 都是什么鬼?
  2. 开发出高性能的网站系列文章
  3. 软件常见故障的现象、故障排除的方法
  4. MyBatis MapperScannerConfigurer配置——MyBatis学习笔记之八
  5. 非关系型数据库mongodb的打开与连接
  6. 《SAS编程与数据挖掘商业案例》学习笔记之十六
  7. Java 泛型 泛型的约束与局限性
  8. Python回调函数的实现
  9. 网盘多线程提速下载利器:JDownloader 2 for Mac
  10. Linux常用软件包管理器命令
  11. topcoder java_Topcoder 练习小记,Java 与 Python 分别实现。
  12. WQ7033开发指南(按键篇)之4.4 三轴加速度传感器SC7A20实现双击、三击驱动详解
  13. 【JZOJ A组】Melancholy
  14. Office2016 Excel 快捷键备忘录
  15. MATLAB坐标轴位置调整
  16. Oracle在命令行中输入clear,Oracle SQLPlus 常用命令及解释
  17. js 检查当前浏览器是否在苹果设备上
  18. 2023 年软件文档工具,这5款可以看看!
  19. 曾风靡全球的 Delphi,要日薄西山了?
  20. 傅里叶、伯德图的简单示例

热门文章

  1. SpringMVC @Transactional注解方式事务失效的解决办法
  2. 创建存储过程向表中循环加入数据
  3. JS各种各样的拖动效果
  4. LeetCode--45. 跳跃游戏Ⅱ(贪心)
  5. 怎么增加服务器容量,新睿云服务器硬盘容量怎么增加?
  6. 左侧固定右侧自动填充_ai怎么填充颜色?在ai里怎么填充颜色?
  7. WPF学习笔记(7):DataGrid中数字自定义格式显示
  8. 输入框禁止输入emoji标签
  9. 关于putty连接服务器提示server unexpectedly closed connection解决方法
  10. 关于angularjs指令