什么是maven 父子项目?
意思就是:相当于一个家庭,一个家庭有一个父亲,可能有多个子女。父亲管子女,子女继承父亲的一切;父子工程也一样,目前很多微服务采用了这种模式。
- 父工程:父工程又称为父控制器,只是一个简单的工程,不能单独运行。作用是将子模块跟子工程聚合在一起。父控制器中的pom.xml配置,在子模块跟子工程中都可以被继承。
- 子工程:项目中创建的具有业务逻辑并且可以单独部署的的子模块称为子工程,一个项目中不同的子工程通过在pom.xml中添加同一个父工程而整合在一起。
- 子模块:提取出了一些子工程中通用的模块,做成jar包。当子工程需要使用的时候只要在pom.xml中添加依赖就好了。
通过idea构建一个父子项目
- File -> new -> project 或在idea 项目选择界面 new project。
2.直接Next (下一步) ,填写项目名称等信息,其中:groupId 和 artifactid是什么意思在前面的文章中已经介绍过了 一. 创建一个简单的spring-boot项目
3.点击finish 完成创建,父工程创建完成,父工程部能单独运行,所有删除掉src文件夹
4.创建子模块
什么是archetype?
archetype的意思就是模板原型的意思,原型是一个Maven项目模板工具包。不选择模板也是可以的。
5.网站一般建议现在两种模板:
maven-archetype-quickstart
maven-archetype-webapp
区别在于:
- maven-archetype-quickstart
项目里,除了pom.xml外,只有main、test两个包,包里放了一个App、AppTest类
- maven-archetype-webapp
项目里,只有webapp目录,里面包含了web-inf有web.xml和一个index.jsp
pom.xml里面内容差不多一样的,就不列举了
6.不选择任何模块,进行创建
项目里:有java resources文件夹
其他骨架原型说明,41个的已经比较老了,目前有60个骨架原型,可根据自身需要进行选择
子模块与子模块引用
1.我采用maven-archetype-quickstart 构建了两个模块
provider 为:数据提供者,api 为:与前端交互者
在provider 创建一个类:DateSourceService
在 api 模块的pom.xml中引用 provider 模块
测试一下,是否能放到到 DateSourceService: