在IntelliJ IDEA中创建带子模块的SpringBoot工程

前言

在项目开发中,一个工程往往有若干子工程或模块,所以主工程一般是一个容器,本文介绍在IntelliJ IDEA中创建带多模块的SpringBoot工程的详细步骤。

1、首先打开IntellJ IDEA(以下简称IDEA),创建一个新项目。假定新项目的名称为openjweb-cloud,组ID为org.openjweb,主工程的artifactId为openjweb-cloud-boot。

打开IDEA开发工具,选择菜单File...New....Project,见下图:

弹出下面的界面:

左侧选择Spring Initializr,右侧Name:项目名自己随便起(openjweb-cloud),Location选择项目路径,建议路径中无中文无空格。Language:Java,Type选Maven,Group组ID自己可以按照产品域名设置,例如org.openjweb,ArtifactId为项目的ID,比如openjweb-cloud作为项目ID,Package name为JAVA程序的包路径名字,一般为产品域名.主工程名,例如org.openjweb,Project SDK ,我建议选择JDK8,目前生产环境主要是JDK1.8的,JAVA 版本号选择23 (没有8版本的,所以先选择23 ,后面再改),然后点Next按钮。见下面的界面:

SpringBoot版本暂时不用3系列的,但目前IDEA里只有3系列的,暂时选择3.3.5,后面再改。

上面的界面中点Finish。IDEA创建了一个新的工程,见下图:

2、创建Module

在创建Module之前,需要进行一些配置:

(1)因为主工程一般做容器用的。所以需要把主工程的packageing设置为pom,SpringBoot版本设置为2.7.18(具体根据项目需求)。修改pom.xml:

另外,点击右侧的Maven:

打开下面的界面:

注意右上角的齿轮,点开齿轮:

第一个Group Module菜单没勾选,把这个勾选上,这样创建模块的时候会在一个工程里。

接下来创建模块,现在创建一个openjweb-common模块,主要用于实现无框架依赖的底层工具类,例如字符串处理、文件处理工具类。具体操作步骤:

(1)鼠标选中openjweb-cloud项目,然后顶部菜单,File...New...Module:

点Next,然后点Finish。创建的模块结构见下图:

此时右侧的openjweb-common模块还没在openjweb-cloud 下面,手工做如下配置:

打开openjweb-common模块的pom.xml,复制主工程的:

复制代码
<groupId>org.openjweb</groupId>
<artifactId>openjweb-cloud</artifactId>
<version>0.0.1-SNAPSHOT</version>

放在<parent></parent>里,把原来的parent里的内容删掉:

改后是这样的:

复制代码
<parent>
    <groupId>org.openjweb</groupId>
    <artifactId>openjweb-cloud</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</parent>

主工程目前没有 module,增加:

复制代码
<modules>
    <module>openjweb-common</module>
</modules>

然后点下图的刷新图标,刷新后,模块openjweb-common就挂到主工程下面了:

接下来点击MAVEN窗口的package打包检查是否能正常打包:

打包成功。

另外再选中子模块的application,点绿色的箭头运行看能否正常启动:

提示:

需要打开File--Settings配置下模块的JDK版本:

将openjweb-common的23改为1.8,保存后,在maven界面上需要点下

然后再运行,运行成功界面见下图:

因为平时做项目大多是别人搭建好的工程,所以不少人没有从零搭建过,会遇到不少问题。

另外因为openjweb-common是基础类库,不需要SpringBoot运行,后面增加业务系统模块可删除掉 OpenjwebCommonApplication.java

相关推荐
zc.z3 小时前
JAVA实现:纯PCM格式音频转换成BASE64
java·音视频·pcm
mask哥3 小时前
力扣算法java实现汇总整理(上)
java·算法·leetcode
Aaswk4 小时前
Java Lambda 表达式与流处理
java·开发语言·python
是宇写的啊5 小时前
Spring AOP
java·spring
万邦科技Lafite5 小时前
京东item_get接口实战案例:实时商品价格监控全流程解析
java·开发语言·数据库·python·开放api·淘宝开放平台
Mr_pyx6 小时前
Spring AI 入门教程:Java开发者的AI应用捷径
java·人工智能·spring
Zephyr_06 小时前
Leedcode算法题
java·算法
苍煜7 小时前
Java开发IO零基础吃透:BIO、NIO、同步异步、阻塞非阻塞
java·python·nio
折哥的程序人生 · 物流技术专研7 小时前
Java面试85题图解版(一):基础核心篇
java·开发语言·后端·面试
AllData公司负责人8 小时前
通过Postgresql同步到Doris,全视角演示AllData数据中台核心功能效果,涵盖:数据入湖仓,数据同步,数据处理,数据服务,BI可视化驾驶舱
java·大数据·数据库·数据仓库·人工智能·python·postgresql