温馨提示
在 IntelliJ IDEA
中为项目新增一个模块是一个常见的操作,尤其是在需要将项目拆分为多个独立模块时(例如将业务逻辑、数据访问、API
接口等分离)。
新增模块
选择 New > Module
。
在弹出的窗口中,选择 Maven
,然后点击 Next
。
输入模块的 GroupId
和 ArtifactId
,例如:
js
Name: xiaomayi-example
GroupId: com.xiaomayi.example
ArtifactId: xiaomayi-example
点击 Create
即创建完毕。
配置依赖
- 配置父模块
pom.xml
文件
在项目根 POM.xml
文件中加入并声明新创建的模块,以便应用模块可以正常引入并使用此新建模块。
js
<!-- 依赖管理 -->
<dependencyManagement>
<!-- 依赖声明 -->
<dependencies>
<!-- 核心类库模块BOM导入 -->
<dependency>
<groupId>com.xiaomayi</groupId>
<artifactId>xiaomayi-all</artifactId>
<version>${revision}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- 后台管理应用依赖模块 -->
<dependency>
<groupId>com.xiaomayi</groupId>
<artifactId>xiaomayi-admin</artifactId>
<version>${revision}</version>
</dependency>
<!-- 前台网站应用依赖模块 -->
<dependency>
<groupId>com.xiaomayi</groupId>
<artifactId>xiaomayi-web</artifactId>
<version>${revision}</version>
</dependency>
<!-- 客户端应用依赖模块 -->
<dependency>
<groupId>com.xiaomayi</groupId>
<artifactId>xiaomayi-uniapp</artifactId>
<version>${revision}</version>
</dependency>
<!-- 生成器服务依赖模块 -->
<dependency>
<groupId>com.xiaomayi</groupId>
<artifactId>xiaomayi-generator</artifactId>
<version>${revision}</version>
</dependency>
<!-- 定时任务服务依赖模块 -->
<dependency>
<groupId>com.xiaomayi</groupId>
<artifactId>xiaomayi-quartz</artifactId>
<version>${revision}</version>
</dependency>
<!-- 系统管理服务依赖模块 -->
<dependency>
<groupId>com.xiaomayi</groupId>
<artifactId>xiaomayi-system</artifactId>
<version>${revision}</version>
</dependency>
<!-- CMS服务依赖模块 -->
<dependency>
<groupId>com.xiaomayi</groupId>
<artifactId>xiaomayi-cms</artifactId>
<version>${revision}</version>
</dependency>
<!-- 新建案例服务模块 -->
<dependency>
<groupId>com.xiaomayi</groupId>
<artifactId>xiaomayi-example</artifactId>
<version>${revision}</version>
</dependency>
</dependencies>
</dependencyManagement>
- 配置新模块
pom.xml
文件
新建 xiaomayi-example
模块自动创建 POM
文件内容如下:
js
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.xiaomayi</groupId>
<artifactId>xiaomayi-services</artifactId>
<version>1.0.0</version>
</parent>
<groupId>com.xiaomayi.example</groupId>
<artifactId>xiaomayi-example</artifactId>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>
按需更改为以下配置内容:
js
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.xiaomayi</groupId>
<artifactId>xiaomayi-services</artifactId>
<version>${revision}</version>
</parent>
<!-- 项目名称 -->
<artifactId>xiaomayi-example</artifactId>
<!-- 项目打包类型:JAR包 -->
<packaging>jar</packaging>
<!-- 项目名称 -->
<name>xiaomayi-example</name>
<!-- 项目描述 -->
<description>新建案例服务模块</description>
<!-- 依赖声明 -->
<dependencies>
<!-- mybatis配置模块 -->
<dependency>
<groupId>com.xiaomayi</groupId>
<artifactId>xiaomayi-mybatis</artifactId>
</dependency>
<!-- 文档依赖模块 -->
<dependency>
<groupId>com.xiaomayi</groupId>
<artifactId>xiaomayi-springdoc</artifactId>
</dependency>
<!-- 多租户模块 -->
<dependency>
<groupId>com.xiaomayi</groupId>
<artifactId>xiaomayi-tenant</artifactId>
</dependency>
<!-- 系统管理依赖模块 -->
<dependency>
<groupId>com.xiaomayi</groupId>
<artifactId>xiaomayi-system</artifactId>
</dependency>
</dependencies>
</project>
使用模块
在应用模块 xiaomayi-modules/xiaomayi-admin
后台模块中引入新建案例模块的依赖,在 pom.xml
配置文件中 <dependencies>
依赖声明中直接引入。
js
<!-- 依赖声明 -->
<dependencies>
<!-- 此处省略其他模块引入 -->
<!-- 新建案例服务模块 -->
<dependency>
<groupId>com.xiaomayi</groupId>
<artifactId>xiaomayi-example</artifactId>
</dependency>
</dependencies>
总结
通过以上步骤,你可以在 IntelliJ IDEA
中为项目新增一个模块,并实现模块间的依赖和通信。这种模块化的设计可以提高代码的可维护性和可扩展性,特别适合大型项目的开发。