经由过程浏览本文你将相识到:怎样将已有SpringBoot项目改成多模块 & 怎样新构建多模块SpringBoot项目 以下示例基于我正在运用的order(定单效劳)举行演示,不管你用的是什么项目,道理都是一样的,这里不要纠结运用的是什么效劳。
修正最外层pom文件
最外层pom文件是用来治理其他子模块的父级pom,重点将<packaging>节点修正为pom,修正前<packaging>多是jar或war
这里修正成pom是由于打包时,父pom是依靠于子pom举行打包的,父pom会经由过程<modules>节点将一切的子pom模块引入而且举行治理
<packaging>pom</packaging>
建立多模块
假定你已设想好子模块的拆分准绳,这里最先基于你本身的设想举行子模块的建立
比方:我将order项目拆分红三个欠亨的子模块,即common、client、server,每一个模块卖力的事变是分歧的
第一步:右键项目称号,挑选New->Module
第二步:在弹出的New Module窗口挑选Maven
第三步:点击Next,并输入子模块的ArtifactId,如:common、client、server等,然后点击Next
第四步:搜检并确认子模块称号及途径是不是准确,若是准确则点击Finish
至此,common模块就建立胜利了,你会发明order根目次下多了一个common子模块
转移代码
建立了common模块后,若是有须要挪动至common子模块下的代码,则依据本来的代码目次构造,在common-src-main-java下建立雷同的目次构造便可
比方:我项将ProductInfoOutput挪动到common子模块下,本来ProductInfoOutput的保路经为com.imooc.order.common,那末我须要在common-src-main-java下建立com.imooc.order.common包,并将ProductInfoOutput拽进去
增补申明:我在建立com.imooc.order.common包时遇到了一个题目,就是右键java文件夹然后选New->Package并建立com.imooc.order.common时,建立出来的包途径时没有条理构造的,也就是说IDEA纯真的为我建立了一个名为com.imooc.order.common的文件夹
经研讨发明,是视图的题目,将左上角的Project改成Project Files,然后按照上面的体式格局建立便可
在转移test目次下的代码时,一样须要注重test目次下的包构造要与转移前的构造一致,这里以server模块为例,由于common下的test目次没有代码
当我们建立很多有的子模块后,视察最外层的父级pom文件内容,发明父级pom已将我们建立的子模块作为modules引入进来了
修正子模块pom文件
当我们建立很多个子模块后,子模块间可能会存在依靠干系,比方我的server模块会依靠common模块下的ProductInfoOutput类
那末我须要在server模块的pom文件中将common模块引入
其他模块间的依靠援用同理
修正完子pom的依靠干系后,一定要革新pom文件,否则依靠不会见效
设置装备摆设打包插件
SpringBoot项目一样平常都邑打成jar包布置,以是须要在pom中引入spring-boot-maven-plugin的maven插件
比方:我现在要打包order项目,此时我的SpringBoot运转主类在server模块下,那末我就须要以server模块为重要的打包对象
由于打包时,maven插件会去找SpringBoot的启动类,若是没有启动类会打包失利
那末,此时我就须要在server模块的pom中增添spring-boot-maven-plugin的相干设置装备摆设
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
注重:在最外层的父级pom中若是一样存在spring-boot-maven-plugin的设置装备摆设,记得一定要删撤除
打包并运转效劳
在maven窗口一次实行Lifecycle下的clean和install(若是你会maven敕令,也能够用敕令操纵)
能够看到,这几个模块都是SUCCESS,申明构建胜利了
那我们要的能够运转的jar文件在server模块的target目次下,我们找到它
末了放到效劳器上运转这个jar包
运用敕令:nohuo java -jar order-server-0.0.1-SNAPSHOT.jar > order.log 2>&1 &
能够看到,项目已胜利启动了,端口号为默许的8080
至此,构建多模块的SpringBoot项目就已告一段落了
Comment here is closed