这两年一直在使用jeesite框架,2018年jeesite4升级为springboot项目,我这边也紧跟着升级了。现在对项目模块进行整理
首先解释几个maven pom文件中的标签,作为一个maven管理的项目模块,必不可少的事GAV
标签,即groupId
,artifactId
,version
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类型,
<packaging>pom</packaging> ---------> 父类型都为pom类型
<packaging>jar</packaging> ---------> 内部调用或者是作服务使用
<packaging>war</packaging> ---------> 需要部署的项目
此处为分割线,以上为maven的标签解释,下来举jeesite4框架为例进行说明:
下图是整个项目的项目结构(springboot的maven多模块管理项目),其中common,modules,parsent,root,web是框架自带模块,task是我新建的测试模块
root模块是聚合模块,里面会有modules标签
整个项目会按照mudules里面的模块进行构建,我新建的task模块如果要添加到整个项目中来,也需要添加到modules标签中
parsent模块是其他几个子模块的父模块
注意:聚合模块和作为父模块的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文件
modules的core模块的pom文件
task模块的pom文件
已知:<packaging>jar</packaging>
---------> 内部调用或者是作服务使用
modules中的core模块中依赖了common模块
web模块又依赖了core模块,所以web可以直接调用core以及common模块中的类