当前位置: 首页 > article >正文

在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


http://www.kler.cn/a/387730.html

相关文章:

  • C/C++精品项目之图床共享云存储(3):网络缓冲区类和main
  • 算法——移除链表元素(leetcode203)
  • [Docker#8] 容器配置 | Mysql | Redis | C++ | 资源控制 | 命令对比
  • JavaScript高级程序设计基础(四)
  • 如何在Puppeteer中实现表单自动填写与提交:问卷调查
  • [CKS] 关闭API凭据自动挂载
  • Spring Boot 与 Vue 共筑高校网上订餐卓越平台
  • js实现各种经典排序算法
  • TG机器人链游开发项目:迈向去中心化游戏新时代
  • ffmpeg视频滤镜:缓入缓出-fade
  • Web安全之SQL注入---基础
  • 大厂社招3年-力扣热点高频刷题记录(已更新100+道热点题)
  • 【算法】排序算法
  • 使用layui过程中的问题
  • STM32各模块
  • 21. 评估架构
  • 快速上手Cellranger
  • 股票投资学习路线图
  • 西南科技大学竞赛与实践——实验一Paillier算法及其实现
  • Spring-Day8
  • Gradle命令编译Android Studio工程项目并签名
  • OJ算法练习(双指针篇)
  • django+postgresql
  • 题目:Wangzyy的卡牌游戏
  • 前端入门一之CSS知识详解
  • SpringBoot续+SpringMVC入门介绍