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的默认启动类

### Spring Boot 模块项目Maven最佳实践 对于基于Spring BootMaven构建的模块项目,在不涉及Spring Cloud的情况下,如果根项目下存在多个子模块,且只有一个特定的子模块Spring Boot启动类,则仅需在这个拥有启动类的子模块中配置`spring-boot-maven-plugin`插件即可完成整个项目的打工作。 #### 配置启动模块中的POM文件 为了使模块项目能够被打成可执行的JAR文件,应在含有Spring Boot应用入口(即启动类)的那个子模块下的`pom.xml`里加入如下所示的插件定义: ```xml <build> <plugins> <plugin> <!-- 插件用于创建可以独立运行的应用程序 --> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> ``` 此部分设置确保了当执行Maven生命周期阶段如`package`或`install`时,会自动处理依赖关系生成最终产物——一个含了所有必要资源和支持库在内的单个JAR文件[^2]。 #### 使用Maven命令进行打操作 一旦上述配置完毕之后,可以通过简单的Maven指令来触发打过程。通常情况下,开发者会在父级目录也就是最外层的项目根路径处运行以下命令来进行整体编译与打: ```bash mvn clean package ``` 这条命令将会清理旧版本的目标文件夹(`clean`),接着按照各子模块间的依赖顺序依次编译源码(`compile`)直至最后一步将目标模块构建成所需的格式(`package`)。值得注意的是,由于只在一个地方设置了`spring-boot-maven-plugin`,所以只有那个特别指定了该插件的子模块会被视为应用程序的核心组件而被特殊对待;其余不具备此类标记的子模块则仅仅作为普通的Java/Maven项目参与进来,它们所提供的功能和服务均通过API接口的形式供前者调用[^1]。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值