前言
在项目开发中,一个工程往往有若干子工程或模块,所以主工程一般是一个容器,本文介绍在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
后续Demo代码会发布在GitHub