IDEA创建基于springboot的多个module聚合项目,并生成war包

背景:最近公司在做一个基于springboot的景区管理系统,项目前期将所有的功能都做到了一个项目里,现在客户需要把前台售票和后台管理分别部署到两个域名下,本人负责拆分项目,决定使用idea创建两个project,将service和实体,dao分装成一个公用的module,两个项目共同引用,折腾之后项目可以运行但maven打包一直出错;
后来查了资料这种情况需要使用maven的多模块聚合方式,也就是project是空的,服务也是module,module之间互相依赖,service是jar包方式,前台服务是war包方式;
简单介绍一下步骤:

  1. 创建一个maven项目:
    这里写图片描述

  2. 在项目文件夹右键新建service的module,因为是springboot项目需要选择spring
    在项目文件夹右键新建module,因为是springboot项目需要选择spring

  3. 创建前台售票服务的module,注意打包方式war,这个是需要部署到tomcat下的服务

  4. 在project的pom文件中引入module
    这里写图片描述

  5. 前台售票module需要依赖service module 在pom文件中配置依赖关系
    这里写图片描述

  6. 打包,要在父工程打包:
    这里写图片描述

踩坑

所有module基础包名要相同,不同会报错,找不到类,
删除非服务的module的默认启动类

### 如何在 IntelliJ IDEA创建 Spring Boot 模块项目 #### 使用 IntelliJ IDEA 创建模块项目的初始设置 打开 IntelliJ IDEA 后,选择 `File` -> `New` -> `Project...` 来启动新的工程向导[^1]。 对于模块 Maven 或 Gradle 项目,在创建项目时应指定其打方式为 `pom` (Maven)或者不指定类型(Gradle),确保选择了 `Create from template` 下的 `Spring Initializr` 模板来配置根项目的依赖关系和基本信息[^2]。 #### 配置父级 POM 文件 (针对 Maven) 当使用 Maven 构建工具时,编辑父项目的 pom.xml 文件以定义子模块结构: ```xml <modules> <module>child-module-name</module> </modules> ``` 此部分告知构建系统哪些目录下的文件夹作为子模块参与整个项目的编译过程。同时还需要调整 `<packaging>` 标签的内容为 `pom`,表明这是一个聚合型的父POM而不是普通的jar/war形式的应用程序[^3]。 #### 添加子模块到现有项目中 为了增加额外的服务层或其他功能组件,可以通过右键点击主项目名称->`New`->`Module...`的方式引入更独立运行但仍属于同一整体解决方案内的单元。每个新增加出来的子模块都可以单独拥有自己的技术栈以及业务逻辑实现细节。 #### 设置共享资源和服务发现机制 考虑到微服务架构下各节点间通信的需求,建议利用 Eureka, Zuul/Zuul Gateway 等 Netflix OSS 组件搭建注册中心与API网关;也可以考虑采用 Consul 或者 Nacos 实现相同目的。这些中间件能够帮助简化跨多个实例部署环境中的地址解析难题,提供负载均衡等功能特性。 #### 测试与调试模块应用 完成上述操作后即可按照常规流程编写测试案例验证各个组成部分的功能正确性。值得注意的是,在某些情况下可能需要特别处理不同进程间的交互问题,比如通过命令行参数传递端口号等信息给每一个正在监听特定网络位置上的服务器实例。
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值