springboot maven多模块项目结构及maven标签解释

这两年一直在使用jeesite框架,2018年jeesite4升级为springboot项目,我这边也紧跟着升级了。现在对项目模块进行整理

首先解释几个maven pom文件中的标签,作为一个maven管理的项目模块,必不可少的事GAV标签,即groupIdartifactIdversion
groupId
项目名称,是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构。

artifactId
模块名称,就是模块的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。

version
就是项目的版本。

其次介绍parsent(继承标签),packaging(打包标签),modules(聚合标签)标签
1.聚合主要是为了方便快速构建项目,继承主要是为了消除重复配置;
2.对于聚合模块而言,它知道有哪些被聚合的模块,但那些被聚合的模块不知道这个聚合模块的存在;对于继承的父pom而言,它不知道有哪些子模块继承它,

 但那些子模块都必须知道自己的父POM是什么;

3.聚合POM与继承中的父POM的packaging都必须是pom;同时,聚合模块与继承中的父模块除了POM外,都没有实际的内容

packaging的几种方式及区别:
项目的打包类型:pom、jar、war

packing默认是jar类型,

pom   --------->   父类型都为pom类型

jar      --------->   内部调用或者是作服务使用

war    --------->   需要部署的项目

此处为分割线,以上为maven的标签解释,下来举jeesite4框架为例进行说明:

下图是整个项目的项目结构(springboot的maven多模块管理项目),其中common,modules,parsent,root,web是框架自带模块,task是我新建的测试模块
springboot maven多模块项目结构及maven标签解释_第1张图片

root模块是聚合模块,里面会有modules标签

springboot maven多模块项目结构及maven标签解释_第2张图片
整个项目会按照mudules里面的模块进行构建,我新建的task模块如果要添加到整个项目中来,也需要添加到modules标签中

parsent模块是其他几个子模块的父模块

springboot maven多模块项目结构及maven标签解释_第3张图片

注意:聚合模块和作为父模块的pom中packaging方式都必须是“pom”

接下里介绍子模块,common,modules,web和task,在jeesite4框架中,开发者主要是在web模块中进行开发具体业务,common模块和modules中的core模块主要是提供框架常用功能(比如权限,登陆等)以及工具功能(utils)的模块,task是我写的测试模块,主要提供定时器功能,所以按照以前的开发思维,common,modules,task可以打成jar作为依赖供web模块使用,所以这三个模块中的parsen标签里都是parsent模块,packing标签的打包方式都是jar,如下图:

common模块的pom文件
springboot maven多模块项目结构及maven标签解释_第4张图片

modules的core模块的pom文件
springboot maven多模块项目结构及maven标签解释_第5张图片

task模块的pom文件
springboot maven多模块项目结构及maven标签解释_第6张图片

已知:jar ---------> 内部调用或者是作服务使用

modules中的core模块中依赖了common模块
springboot maven多模块项目结构及maven标签解释_第7张图片

web模块又依赖了core模块,所以web可以直接调用core以及common模块中的类

springboot maven多模块项目结构及maven标签解释_第8张图片

你可能感兴趣的:(springboot maven多模块项目结构及maven标签解释)