怎样构建多模块的SpringBoot项目

2019年7月2日10:59:20怎样构建多模块的SpringBoot项目已关闭评论 212

经由过程浏览本文你将相识到:怎样将已有SpringBoot项目改成多模块 & 怎样新构建多模块SpringBoot项目 以下示例基于我正在运用的order(定单效劳)举行演示,不管你用的是什么项目,道理都是一样的,这里不要纠结运用的是什么效劳。 

修正最外层pom文件

最外层pom文件是用来治理其他子模块的父级pom,重点将<packaging>节点修正为pom,修正前<packaging>多是jar或war

这里修正成pom是由于打包时,父pom是依靠于子pom举行打包的,父pom会经由过程<modules>节点将一切的子pom模块引入而且举行治理

怎样构建多模块的SpringBoot项目

<packaging>pom</packaging>

 

建立多模块

假定你已设想好子模块的拆分准绳,这里最先基于你本身的设想举行子模块的建立

比方:我将order项目拆分红三个欠亨的子模块,即common、client、server,每一个模块卖力的事变是分歧的

第一步:右键项目称号,挑选New->Module

怎样构建多模块的SpringBoot项目

第二步:在弹出的New Module窗口挑选Maven

怎样构建多模块的SpringBoot项目

第三步:点击Next,并输入子模块的ArtifactId,如:common、client、server等,然后点击Next

怎样构建多模块的SpringBoot项目

第四步:搜检并确认子模块称号及途径是不是准确,若是准确则点击Finish

怎样构建多模块的SpringBoot项目

至此,common模块就建立胜利了,你会发明order根目次下多了一个common子模块

怎样构建多模块的SpringBoot项目

转移代码

建立了common模块后,若是有须要挪动至common子模块下的代码,则依据本来的代码目次构造,在common-src-main-java下建立雷同的目次构造便可

比方:我项将ProductInfoOutput挪动到common子模块下,本来ProductInfoOutput的保路经为com.imooc.order.common,那末我须要在common-src-main-java下建立com.imooc.order.common包,并将ProductInfoOutput拽进去

怎样构建多模块的SpringBoot项目

增补申明:我在建立com.imooc.order.common包时遇到了一个题目,就是右键java文件夹然后选New->Package并建立com.imooc.order.common时,建立出来的包途径时没有条理构造的,也就是说IDEA纯真的为我建立了一个名为com.imooc.order.common的文件夹

经研讨发明,是视图的题目,将左上角的Project改成Project Files,然后按照上面的体式格局建立便可

怎样构建多模块的SpringBoot项目

 在转移test目次下的代码时,一样须要注重test目次下的包构造要与转移前的构造一致,这里以server模块为例,由于common下的test目次没有代码

怎样构建多模块的SpringBoot项目

 当我们建立很多有的子模块后,视察最外层的父级pom文件内容,发明父级pom已将我们建立的子模块作为modules引入进来了

怎样构建多模块的SpringBoot项目

 

修正子模块pom文件

当我们建立很多个子模块后,子模块间可能会存在依靠干系,比方我的server模块会依靠common模块下的ProductInfoOutput类

那末我须要在server模块的pom文件中将common模块引入

其他模块间的依靠援用同理

怎样构建多模块的SpringBoot项目

修正完子pom的依靠干系后,一定要革新pom文件,否则依靠不会见效

设置装备摆设打包插件

SpringBoot项目一样平常都邑打成jar包布置,以是须要在pom中引入spring-boot-maven-plugin的maven插件

比方:我现在要打包order项目,此时我的SpringBoot运转主类在server模块下,那末我就须要以server模块为重要的打包对象

由于打包时,maven插件会去找SpringBoot的启动类,若是没有启动类会打包失利

怎样构建多模块的SpringBoot项目

那末,此时我就须要在server模块的pom中增添spring-boot-maven-plugin的相干设置装备摆设

怎样构建多模块的SpringBoot项目

    <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敕令,也能够用敕令操纵)

怎样构建多模块的SpringBoot项目

能够看到,这几个模块都是SUCCESS,申明构建胜利了

那我们要的能够运转的jar文件在server模块的target目次下,我们找到它

怎样构建多模块的SpringBoot项目

末了放到效劳器上运转这个jar包

运用敕令:nohuo java -jar order-server-0.0.1-SNAPSHOT.jar > order.log 2>&1 &

怎样构建多模块的SpringBoot项目

能够看到,项目已胜利启动了,端口号为默许的8080

至此,构建多模块的SpringBoot项目就已告一段落了

 

avatar