美文网首页框架建设收集
SpringBoot(maven)多模块项目构建

SpringBoot(maven)多模块项目构建

作者: 挣扎在黑暗中的码畜 | 来源:发表于2019-06-28 17:43 被阅读36次

    须知

    本文以三个模块为例来搭建项目,以达到通俗易懂的初衷

    模块parent —– 基模块,就是人们常说的parent

    模块utiltools —– 其他模块都需要使用的一些工具,比如时间工具,json工具等

    模块web —– web模块

    先简单讲一下maven的一些特点

    继承

    这个可以理解为java中的继承类似,父类定义的东西,子类如果你想用就拿过来用就可以;

    依赖

    依赖就相当于我们java中的导包,二者有着异曲同工之妙;

    你想用的东西只需要告诉maven它在哪就可以,它会自动帮你找过来给你用

    聚合

    这个暂时我还没找到java中能与之对应的原型;

    maven聚合是将多个模块组装在一起,相互协调依赖运行;

    ---------------------

    创建步骤 (详细多图)

    1.建设一个新项目(这里使用IDEA创建Spring Initializr项目)

    新建项目-1 新建项目-2 新建项目-3 新建项目-4

    项目目录(只保留pom文件即可,这里使用IDEA 所以还要保留IDEA的项目配置文件)

    新建项目-5

    在pom.xml文件中添加<packaging>pom</packaging>

    新建项目-6

    创建子模块(module)

    创建子模块-1 创建子模块-2 创建子模块-3 创建子模块-4 新建子模块-5

    项目目录

    项目目录结构-1

    创建子模块utiltools和上边创建子模块过程一样的,这里不再一一截图

    创建完子模块后的项目目录

    项目目录-2

    这时模块基本创建完成,接下来修改pom文件

    1.添加<packaging>jar</packaging>

    2.把继承org.springframework.boot改为继承父模块

    注:由于其他子模块也一样修改,这里不再一一截图

    修改子项目pom文件

    在父工程pom文件中声明子模块

    声明子模块

    2.测试项目

    说明:在utiltools模块和web模块些一个静态方法,在partent模块启动项目并执行utiltools模块和web模块的静态方法。

    注意:由于partent调用其他模块的方法,所以需要在partent模块的pom文件中引入被调用模块依赖

    partent模块引入其他模块依赖

    引入被调用模块依赖

    其他子模块添加静态方法

    添加静态方法

    parent模块启动项目并调用其他子模块的静态方法

    parent模块启动项目

    到此多模块项目创建完成。

    3.运维部署(多模块打包)

    注意:多模块项目仅仅需要在启动类所在的模块添加打包插件即可!!不要在父类添加打包插件,因为那样会导致全部子模块都使用spring-boot-maven-plugin的方式来打包(例如BOOT-INF/com/hehe/xx)

    本案例的启动模块是 parent, 只需在它的pom.xml 添加打包插件(spring-boot-maven-plugin):

    前面步骤中在父工程pom文件中存在答辩插件,因此将父工程中打包插件部分代码移动到parent模块下的pom文件即可。

    parent模块的pom文件

    打包工程

    首先在IDE打开Maven插件,然后在聚合父工程helloworld中点击 clean ,然后点击 package 进行打包。

    clen项目 打包项目

    打包的默认地址是:Building jar: E:\helloworld\parent\target\parent-0.0.1-SNAPSHOT.jar

     启动项目

    java -jar parent-0.0.1-SNAPSHOT.jar

    启动效果

    启动效果 依赖结构图

    全文到此结束!如有问题请留言。

    本案例源码:https://gitee.com/huiziqin/multimoduleproject.git

    相关文章

      网友评论

        本文标题:SpringBoot(maven)多模块项目构建

        本文链接:https://www.haomeiwen.com/subject/znxecctx.html