根据上一章节整合Dubbo之后,错误频频,人都傻了,干脆重构了整个项目,分清了父子工程的结构,如下:
目录
一、新建父工程
直接新建一个springboot项目,名为nacosdemonew,为了和前面章节的项目区分。删除无用的文件夹,结果如下:
二、新建子工程
同样的方式新建三个子工程(同前几章一样,新增一个api服务,用来存接口,此章节不讲具体内容),结果如上图上个子模块。
三、改造父工程pom文件
改造父工程的pom文件,让子模块可以继承(后面的依赖我会全部加到父工程,子工程只加自己独有的依赖),修改后如下图:
1、默认生成的springboot的依赖不需要去修改,子类也可以通过集成父pom的方式继承springboot的依赖。
2、设置关联子模块属性:modules,值为子模块的名称
3、新增packaging属性,父模块必须为pom,子模块为jar
4、dependencies里加上所有子模块公用的依赖
四、改造子工程pom文件
改造子模块的pom文件,让子模块可以继承父工程的pom依赖,如下:
1、子工程的parent标签里面直接复制父工程的‘avg’三要素,如图(下图是父工程):
2、新增packaging标签,值为jar
3、注意所有子工程的plugin标签都不要删,这个是打包插件
五、测试
测试在父工程引入
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
可以发现在子工程可以正常使用RestController等注解,父子工程搭建成功。
六、依赖冲突
在整合各种框架时,可能存在依赖冲突的情况,推荐一个插件,maven helper。
安装之后,进入pom文件,下方会多出一个选项,
点击可以进入查看依赖的情况,如下标红的就是存在冲突的依赖
点击右键,点击exclude,可以自动排出版本冲突的依赖。(若是父工程的依赖,只在父工程有用,在子模块点击exclude会提示失败)