使用Maven 来搭建多模块(Module)的Springboot 项目

Spring Boot 项目实战(一)Maven 多模块项目搭建 一、前言 最近公司项目准备开始重构,框架选定为 Spring Boot ,本篇主要记录了在 IDEA 中搭建 Spring Boot Maven 多模块项目的过程。 二、软件及硬件环境 macOS Sierra 10.12.6 IntelliJ IDEA 2018.2 JDK 1.8 Maven 3.2.1 Spring Boot 2.0.4 三、项目结构 biz 层(业务逻辑层) dao 层(数据持久层) common 层(公用组件层) web 层(请求处理层) 注:biz 层依赖 dao 及 阅读详情

官方文档
视频链接

简单的模块结构
project 项目
└── repository 模块
└── service 模块
└── controller 模块
其中 controller 依赖 service 和repository 模块,service 模块依赖 repository 模块。项目使用idea 来创建

创建项目

在这里插入图片描述
springboot 项目默认选择的是Maven Project ;多模块项目一定要选择 Maven POM
choose maven pom
选择好需要的依赖后,finish。
在这里插入图片描述
项目界面
在这里插入图片描述

开始创建子模块

在这里插入图片描述
此时需要选择Maven 项目,输入模块名即可。依次创建3个模块。
在这里插入图片描述可以看到idea已经自动为我们将3个模块添加到项目了
在这里插入图片描述

在模块中添加相关依赖 和 启动类及application.yml 文件

controller
—pom.xml

<dependencies>
        <!--        依赖dao 和service模块-->
        <dependency>
            <groupId>com.example</groupId>
            <artifactId>dao</artifactId>
            <version>1.0.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>com.example</groupId>
            <artifactId>service</artifactId>
            <version>1.0.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

启动类

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MultipleModuleApplication {

    public static void main(String[] args) {
        SpringApplication.run(MultipleModuleApplication.class,args);
    }

}

application.yml

server:
  port: 8081

spring:
  datasource:
    url: jdbc:h2:mem:example-app;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
    password:
    driver-class-name: org.h2.Driver
  jpa:
    show-sql: true
    hibernate:
      ddl-auto: update
    database-platform: org.hibernate.dialect.H2Dialect
  h2:
    console:
      enabled: true
      path: /console
      settings:
        trace: false
        web-allow-others: false

service 模块
—pom.xml


    <dependencies>
        <!--        依赖dao模块-->
        <dependency>
            <groupId>com.example</groupId>
            <artifactId>dao</artifactId>
            <version>1.0.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

注意事项

1、如果entity和repository、compent 相关类不在controller 模块下,springboot自动扫描时是扫不到这些相关类。此时需要在启动类上加上@EntityScan(basePackages = "")和@EnableJpaRepositories(basePackages = "") 和@ComponentScan(basePackages = "") ,这个三个注解中basePackages 的值就是相关类所在的包,如果在多个包下时,可以统一这些包的首包名,使用通配符*来扫描所有的包,如basePackages = "com.*"。因为@SpringBootApplication注解中已经包含的@CompentScan,所以可以不用添加@CompentScan,直接使用@SpringBootApplication(basePackages="")来添加。

@SpringBootApplication
@EntityScan(basePackages = "com.*")
@ComponentScan(basePackages = "com.*")
@EnableJpaRepositories(basePackages = "com.*")
public class MultipleModuleApplication {

    public static void main(String[] args) {
        SpringApplication.run(MultipleModuleApplication.class,args);
    }

}

2、打包
mvn clean package -Dmaven.test.ski=true
此时肯定打包失败,
需要将在parent pom 文件下的

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

移动到controller模块下的pom.xml ,parent模块下则不在保留。

源码链接:https://github.com/miskss/SpringBootMultipleModule
git:https://github.com/miskss/SpringBootMultipleModule.git

Maven环境下构建多模块项目 如果没有指定,就会默认使用该依赖范围。使用此依赖范围的Maven依赖, 对于编译,测试,运行都有效。使用此依赖范围的Maven依赖,对于编译和测试有效, 但在运行时无效。使用此依赖范围的Maven依赖,对于测试和运行有效, 但在编译代码时无效。Maven会解析各个直接依赖的POM,将那些必要的间接依赖,以传递性依赖的形式引入到当前项目中。1. groupId, artifactId, version : 依赖的基本坐标, 对于任何一个依赖来说,基本坐标是最重要的, Maven根据坐标才能找到需要的依赖。 阅读详情

相关推荐

28个步骤快速搭建基于SpringBoot的Maven多模块Java Web项目

28个步骤快速搭建基于SpringBoot的Maven多模块Java Web项目, 手把手教小白一步一步地快速搭建基于Springboot的maven多模块JavaWeb项目,使用idea编译器搭建。

dalaoliang886的博客 9549

5.Maven环境下构建多模块项目

使用maven提供的多模块构建的特征完成maven环境下多模块的项目的管理和构建 这里以四个模块为例来搭建项目,以达到通俗易懂的初衷 模块 maven_parent -- 基模块,也就是常说的parent (pom) 模块 maven_dao -- 数据库访问层,例如jdbc操作(jar) 模块 maven_service -- 项目的业务逻辑层(jar) 模块 maven_controller -- 用来接收请求,相应数据(war) 1.创建maven_parent项目

qq_51274606的博客 3422

Eclipse搭建基于Springboot的Maven多模块工程

  1,写在前面的话 1.1,我想说点啥          公司提供接口服务的项目要进行重构,主旨是构建基于Springboot的Maven多模块聚合工程.因之前接触Springboot较少,于是就在网上查阅资料,查了好多博客发现大部分都是写用idea构建的,部分用Eclipse搭建的博客感觉又不是那么合我心意,对于用惯Eclipse的程序员来说也懒得再换开发工具了.于是根据自己的实践,在此...

u013642372的博客 9059

如何使用Maven创建多模块项目

使⽤maven 提供的多模块构建的特性完成maven 环境下多个模块的项⽬的管理与构建。这⾥以四个模块为例来搭建项⽬,以达到通俗易懂的初衷模块 maven_parent —– 基模块,就是常说的parent (pom)模块 maven_dao —– 数据库的访问层,例如jdbc操作(jar)模 块 maven_service —– 项⽬的业务逻辑层 (jar)模块 maven_controller —– ⽤来接收请求,响应数据 (war)

来都来了 3411

(一)Eclipse+Maven+SpringBoot通过创建Maven项目添加依赖搭建SpringBoot项目

Eclipse+Maven+SpringBoot通过创建Maven项目添加依赖搭建SpringBoot项目创建Maven项目添加依赖成为SpringBoot项目运行完成后可以得到如下结果:完整的项目目录结构总结使用Maven创建Springboot项目 创建Maven项目添加依赖成为SpringBoot项目 大家好! 在我第一次创建 Maven项目添加依赖成为SpringBoot项目 所遇到很多问...

搁浅的博客 9735

SpringBoot创建多模块项目

构建项目我们采用IntelliJ IDEA工具来创建一个Maven项目,项目的pom.xml要添加对应SpringBoot的配置,因为Maven多模块项目内的模块并不能独立的存在,必须有一个介质来包含,项目结构如下下图所示我们创建的Maven项目结构如上图所示,pom.xml内我们对应的添加了对SpringBoot的支持,因为我们需要使用SpringBoot来作为项目基本框架,并在pom.xml配...

qq_37532651的博客 2124

idea创建maven+springboot多模块(module)项目搭建过程

创建父项目 1、idea引导页 2、

Progran_ape的博客 2406

【SpringBoot】31、搭建SpringBoot父子Module工程项目

在本系列第一篇文章,我们讲解了如何在 IDEA 中搭建第一个 SpringBoot 项目:【SpringBoot】一、创建第一个SpringBoot项目,本篇文章,我们讲解如何在 IDEA 中搭建 SpringBoot 的父子 Module 工程项目 1、Module 工程项目 简介 多模块项目,适用于一些比较大的项目,通过合理的模块拆分,实现代码的复用,便于维护和管理。尤其是一些开源框架,也是采用多模块的方式,提供插件集成,用户可以根据需要配置指定的模块。 2、创建一个 SpringBoot 项目 就是创

JACKAL 21万+

基于maven使用IDEA搭建和部署SpringBoot多模块项目(Multi-Module)

What matters in life is not what happens to you but what you remember and how you remember it. 生命中真正重要的不是你遭遇了什么,而是你记住了哪些事,又是如何铭记的。 ——马尔克斯《百年孤独》 1、引言 在最近的项目开发中,为了满足后期将项目改造成分布式项目,探索将传统的单一...

跨语言,跨平台,跨应用 4689

成本150元的高性能RDP协议瘦客户机

云终端市场是一个跨度很大的市场。既有数千元的品牌的瘦客户机,也有几百元的瘦客户机,还有200-300元的支持RDP协议的多用户云终端。但是200-300元的多用户终端,在显示性能上不尽人意,一般用于地产中介门店,工厂产线的电子看板等场合。有没有性能更好,价格更低的方案呢? 答案是有。 这个方案就是 二手的x86 瘦客户机 + DoraOS瘦客户机系统免费版(仅支持RDP)。 首先我们看硬件,在某宝搜索 升腾C92 ,找到最低配置的( CPU:J1800,内存:2G,硬盘:8G)。价格都在150以内。

云飞扬的桌面云 7411

UDP_千兆光通信(四)Tri Mode Ethernet MAC ip核

其中 Transmit Engine 从 AXI-Stream TX 接口接收数据,并添加前导码 Preamble、帧起始界定符 SFD、帧校验序列 FSC 等,并在必要时(长度小于最小 MAC 帧长度)填充数据,因此在使用 TEMAC 时,MAC 帧的这几个部分就不需要我们自己添加了(不过其他的 MAC 帧部分,可选的帧过滤器 Frame Filter 用于过滤与一组可配置过滤器匹配的帧,一般用于过滤掉目的 MAC 地址与本设备不一致的帧,TEMAC 默认开启帧过滤器。默认值为使用64位宽的计数器。

lzr232的博客 1775

springboot基于maven多模块项目搭建(直接启动webApplication)

【转载】https://www.cnblogs.com/jcjssl/p/9380309.html 1. 新建maven项目springboot-module 2.把src删掉,新建module项目 springboot-module-api springboot-module-model springboot-module-service spring...

PhilipJ0303的博客 782

红外避障模块介绍

该传感器模块对环境光线适应能力强,其具有一对红外线发射与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物(反射面)时,红外线反射回来被接收管接收,经过比较器电路处理之后,绿色指示灯会亮起,同时信号输出接回输出数字信号(一个低电平信号),可通过电位器旋钮调节检测距离,有效距离范围2~30cm,工作电压为3.3v-5v。该模块测距离2~~30cm,检测角度35°,检测距离可以通过电位器进行调节,顺时针调电位器,检测距离增加;1.VCC外接3.3v-5v电压(可以直接与5v单片机和3.3v单片机相连).

weixin_46251230的博客 2万+

maven多模块踩坑-公共模块找不到等问题

记得刚入职时,作为初入职场的小白,git导入项目后,发现这些东西,以为是微服务,然后我在公用模块加入自己的实体类后,启动我的service,居然显示没有这个实体类,同事告诉我,要去clean install一下,当时就一点不懂,后来看书系统性地学习了下maven,才知道这叫多模块,而且,还并不多复杂。 很多新人打眼一看,这么多工程包(module),就说这是微服务,其实不是的,他只是maven多模块。第一步: 新建parent工程,在里面加多个module子工程。 第二步: 修改父子的pom, 子pom中

weixin_44079262的博客 4347

从零构建:openEuler WSL下的ARM交叉编译工具链自动化部署方案

本文详细介绍了在openEuler WSL环境下使用Ansible自动化部署ARM交叉编译工具链的方案。通过编写Ansible角色和Playbook,实现从基础环境配置到工具链安装、环境变量设置的一键部署,大幅提升嵌入式开发效率。方案支持多种ARM架构,并扩展了QEMU仿真、VS Code远程开发等实用功能,是嵌入式开发者的高效解决方案。

h3i4j的博客 382

搭建云平台 1 Day 虚拟机安装(超详细)

点击OFF 那个按钮看看网络的地址和速度有没有显示,如果有 则到目前为止都是成功的。Host name随便起一个名字就行了**-_-**文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**,如果我们安装的VMware14就会默认为。因为我的是VMware16,所以默认。也是可以的,但是千万不要用。

2401_84009679的博客 563

java转义字符表,含泪整理面经

一、前言 最近公司项目准备开始重构,框架选定为 Spring Boot ,本篇主要记录了在 IDEA 中搭建 Spring Boot Maven 多模块项目的过程。 这篇文章可以说是完全的一篇实战项目干货,感兴趣的朋友们可以继续看下去 正文 模块(Module)、组件(Component)、包(Package),这些概念对于我们技术同学并不陌生,但并不是所有人都能理解其要义。 深入理解之后,我才发现,其背后的深意是分类思维。而这种分类也是应用架构的核心所在,通过不同粒度、不同层次的分类,把复杂的软件系统实现

m0_57501579的博客 311

I2C通信协议SCL与SDA引脚特性:核心要点总结

深入讲解I2C通信协议中SCL和SDA引脚的工作机制与电气特性,帮助理解i2c通信协议的稳定传输原理,掌握上拉电阻配置与信号时序控制要点。

weixin_42103128的博客 2735

SpringBoot+mybatis多模块项目(1)

1. 建立springboot功程 按照图示一直next下去 这里工程名可以随你意思取,我的叫百草味,最后点击finish 把上图红色框框的都删掉,最后如下图 2. 建立子模块 右击工程名new–>Module 选择Maven 点击next Module名称中间加-杠,便于阅读,其他2个模块bcw-web,bcw-sevice,以此类推,工程目录结构如下 3. 建启动类并测试...

Jonathan的博客 466

uniapp [安卓苹果App端] - 详细实现自定义水印相机功能,调用手机摄像头打开相机并在周围悬挂自定义水印,使用相机拍照后添加水印文字或样式,uniapp APP端水印相机完整源码,兼容强大可靠

uni-app,安卓Android,苹果ios,安卓app端,苹果App端,uniapp苹果app,水印相机,uniapp水印相机,Uniapp安卓app实现水印相机,uniapp苹果ios水印相机,打开系统相机拍照添加水印,地点打卡相机,水印相机(水印照片,图片加水印),uniapp自定义水印相机,制作水印相机给图片添加水印并且保存图片至本地,uniapp拍照图片加水印,水印相机功能,手机调起摄像头拍照时自动插入文字、图片动态水印效果,支持水印显示拍摄者当前城市定位、自由调整水印大小和位置,手机拍照时

🏆 前端领域优质创作者 1万+

PCL 提取两片点云的非重叠部分【2025最新版】

PCL 提取两片点云的非重叠部分。博客长期更新,本文最近一次更新时间为:2025年9月1日。

点云侠的博客 36万+

Spring Boot Maven多模块项目搭建

Spring Boot(2.0) Maven多模块项目搭建简介 版本号 说明 创建时间 创建人 1.0 创建 2018-05-15 吴桂镇 一、搭建环境 -编译器:Eclipse Oxygen.1a (4.7.1a) -jdk:1.8 -Maven : 3.0 -操作系统:win10 二、项目创建 ...

Yblsfls的博客 7261

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

eclipse中使用maven搭建springboot多模块项目

网上关于如何用maven进行springboot多模块项目搭建案例及文章都很多,这里只是将搭建过程做一记录。 1、创建父项目  File–&gt;new–&gt;maven project   选中途中的选项点 next按钮   在 Packaging 选项中选择pom,点击Finish。 2、删除项目下的其他文件,只留下pom.xml   右键项目,maven–&gt;New Maven M...

lhw_csd的博客 7420

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

IDEA+Maven+多个Module模块(创建多模块SpringBoot整合项目)

最近在学习springboot,先从创建项目开始,一般项目都是一个项目下会有多个模块,这里先创建一个最简单的实例,一个项目下有一个springboot模块项目提供web服务,引用另一个java项目(相当于业务逻辑)  期望的项目结构如下  springboot-test  —-springboot-api  —-springboot-utils 一、创建空Maven项目 首先打开IDEA,点击...

天堂地址不详 3万+

使用 Maven 构建多模块项目

一、概述 在本教程中,我们将学习如何使用 Maven 构建多模块项目。 首先,我们将讨论什么是多模块项目,并看看遵循这种方法的好处。然后我们将设置我们的示例项目。有关 Maven 的良好介绍,请查看本教程。 2. Maven的多模块项目 多模块项目由管理一组子模块的聚合器 POM 构建。在大多数情况下,聚合器位于项目的根目录中,并且必须具有pom类型的打包。 子模块是常规的 Maven 项目,它们可以单独构建,也可以通过聚合器 POM 构建。 通过聚合器 POM 构建项目,每个具有与p.

allway2的博客 8275
上一篇: mysql sql计算经纬度
下一篇: SpringBoot异常处理机制及源码解析
miskss
博客等级 码龄16年 24粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值