springbootmaven多模块项⽬结构及maven标签解释这两年⼀直在使⽤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⽂件
springboot框架的作用
modules的core模块的pom⽂件
task模块的pom⽂件
已知:<packaging>jar</packaging> ---------> 内部调⽤或者是作服务使⽤
modules中的core模块中依赖了common模块
web模块⼜依赖了core模块,所以web可以直接调⽤core以及common模块中的类

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。