热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

springboot单模块项目改造成多模块项目

用idea创建项目,默认是单模块项目的。如果一个项目比较大,包含多个子系统,可能会有一些公共的东西,独立出来,

用idea创建项目,默认是单模块项目的。如果一个项目比较大,包含多个子系统,可能会有一些公共的东西,独立出来,在几个子系统中使用。这时候应该用多模块(Module)项目,所有子系统,以及公共模块,都在一个项目(Project)里面。

我昨天就有这么一个需要,有个项目创建之初,只是一个demo,没有考虑这么多,出来就是一个单模块项目。后来合同落地,demo就顺理成章转变成真正的项目。这是一个演化型原型。考虑到以后可能会有扩展,所以应该改造成多模块项目。这种工作早做早超生,所以趁现在代码还不多,动手改造。整个过程下来,还是走了不少弯路,费了一些功夫。其实最省事的做法,就是项目创建之初就按照多模块项目来规划、建造。

我没有找到省事、轻便的改造方法。改造过程记录如下:

一、创建一个空项目,作为总的项目

然后删掉一些在本系统里没必要的东西,只剩下:pom.xml,*.iml,.idea。

参考文章:
SpringBoot - 多模块项目的搭建教程(附详细过程样例)

二、添加模块(Module)

其实就是要将现有的项目当成模块添加进去。首先也是添加一个空的模块。注意我们做的是一个WEB项目,需要选 Spring Initializr 支持。

创建之后,将原项目的src拷贝回来,覆盖。

覆盖之后,应当修改包路径。比如原项目的包路径:com.abc.prj,假设com.abc.prj是总项目的包名,原项目包名要改成 com.abc.prj.prj-web,那这里就要做相应修改。我用了最笨的字符替换。同时记得文件夹也要做相关调整。

三、修改总项目与模块的pom.xml

具体可参考拙作 spring boot多模块项目中的pom.xml


推荐阅读
  • 本文介绍了一个使用Spring框架和Quartz调度器实现每周定时调用Web服务获取数据的小项目。通过详细配置Spring XML文件,展示了如何设置定时任务以及解决可能遇到的自动注入问题。 ... [详细]
  • 在尝试启动Java应用服务器Tomcat时,遇到了org.apache.catalina.LifecycleException异常。本文详细记录了异常的具体表现形式,并提供了有效的解决方案。 ... [详细]
  • spring boot使用jetty无法启动 ... [详细]
  • 从CodeIgniter中提取图像处理组件
    本指南旨在帮助开发者在未使用CodeIgniter框架的情况下,如何独立使用其强大的图像处理功能,包括图像尺寸调整、创建缩略图、裁剪、旋转及添加水印等。 ... [详细]
  • 本文详细探讨了在Web开发中常见的UTF-8编码问题及其解决方案,包括HTML页面、PHP脚本、MySQL数据库以及JavaScript和Flash应用中的乱码问题。 ... [详细]
  • 本文介绍了如何解决 ChinaASP.Upload 错误 '80040002',即必须添加版权信息的问题,并提供了详细的步骤和注意事项。 ... [详细]
  • 本文探讨了一种统一的语义数据模型,旨在支持物联网、建筑及企业环境下的数据转换。该模型强调简洁性和可扩展性,以促进不同行业间的插件化和互操作性。对于智能硬件开发者而言,这一模型提供了重要的参考价值。 ... [详细]
  • 本文详细介绍了Oracle 11g中的创建表空间的方法,以及如何设置客户端和服务端的基本配置,包括用户管理、环境变量配置等。 ... [详细]
  • 一、Advice执行顺序二、Advice在同一个Aspect中三、Advice在不同的Aspect中一、Advice执行顺序如果多个Advice和同一个JointPoint连接& ... [详细]
  • 问题场景用Java进行web开发过程当中,当遇到很多很多个字段的实体时,最苦恼的莫过于编辑字段的查看和修改界面,发现2个页面存在很多重复信息,能不能写一遍?有没有轮子用都不如自己造。解决方式笔者根据自 ... [详细]
  • 本文将从基础概念入手,详细探讨SpringMVC框架中DispatcherServlet如何通过HandlerMapping进行请求分发,以及其背后的源码实现细节。 ... [详细]
  • 如何在PHP中安装Xdebug扩展
    本文介绍了如何从PECL下载并编译安装Xdebug扩展,以及如何配置PHP和PHPStorm以启用调试功能。 ... [详细]
  • 实践指南:使用Express、Create React App与MongoDB搭建React开发环境
    本文详细介绍了如何利用Express、Create React App和MongoDB构建一个高效的React应用开发环境,旨在为开发者提供一套完整的解决方案,包括环境搭建、数据模拟及前后端交互。 ... [详细]
  • 在现代Web开发中,HTML5 Canvas常用于图像处理和绘图任务。本文将详细介绍如何将Canvas中的图像导出并上传至服务器,适用于拼图、图片编辑等场景。 ... [详细]
  • 电商高并发解决方案详解
    本文以京东为例,详细探讨了电商中常见的高并发解决方案,包括多级缓存和Nginx限流技术,旨在帮助读者更好地理解和应用这些技术。 ... [详细]
author-avatar
惰堂_301
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有