工具:IDEA2020.2.3版本
在构建大型maven项目时,通常采用的工程类型,基本为聚合工程,我们公司也一样,决定引入springboot微服务架构,采用idea+maven+springboot的方式构建。由于springboot搭建聚合工程,与传统的spring+maven构建聚合工程,方式有部分出入,刚开始,搭建了几次,都没成功,经过多次尝试,最后搭建成功了,这里一方面,分享一下自己在搭建springboot聚合工程的注意事项,另一方面,给自己保留搭建资料,以免以后忘记了,再踩坑,具体搭建方法如下:
一:通过spring initializr 创建一个父子工程 例如:父工程admin,
在创建父工程的过程,有建议采用maven方式创建父工程,以后,搭建不成功,可能是因为在尝试阶段,不得其法所致。
如图:
1.3 手动配置依赖管理项,在构建聚合工程时,maven并不会给我们设定依赖管理项,得由我们自己配置:
1.4 在
--以前尝试搭建的时候,就是忽略了这个细节,导致多构建聚合工程都不成功
1.5 在父工程中引入其他子模块的依赖并注明打包方式-type的属性为:jar
例如:
1.6 在
【注】这个地方也是一大坑,之前构建时,也没注意到这个细节,后面参考同行的搭建有提到这里,所以在搭建时,添加进去,果然没问题
二、 在子工程搭建时,注意配置的包路径,一定要在父工程之下,否则,构建出来的结果,并不是自己想要的,因为我采用的时IDEA2020.2.3版本开发工具,搭建的路径可能和其他开发版本不太一样,但与IDEA2020.2.2开发工具差别不大,
例如:我搭建时的父工程路径为:com.xxx.xxx.admin
三、创建子工程时,直接在admin工程上右键 > new > module 创建子模块。
【注意】:子工程创建的路径应为:例如: com.xxx.xxx.admin.dao,在其他版本的IDEA可能是”/”表示路径
四、只保留入口(web)的Application.java的main方法,其他子项目的main方法全部删除,否则,打包不成功
五、只保留入口(web)的application.properties,其他子项目的application.properties全部删除
如下图所示
六、在子项目中引入
七、springboot打包方式,先对子工程的包挨个install打包,最后执行父工程 install打包
[备注]:如果不保留springboot父工程中的
****程序包org.springframework.boot不存在
****程序包org.springframework.boot.autoconfigure不存在
【这个坑】原因是,springboot针对spring-boot、autoconfigure、web、test的版本控制,是通过父工程