1. 开头

微服务将一个项目拆分为多个服务时,如果每个服务都创建一个新的工程项目,那么项目的管理会变得复杂。为了解决这个问题,可以使用IntelliJ IDEA的多模块功能来优化项目的结构。

在一个工程目录下创建多个子模块,每个子模块负责独立的功能,通常可以将每个子模块视为一个微服务,通过这种方式来组织和管理项目,将不同的模块独立开发、测试和部署,极大地提高项目的可维护性和开发效率。

2. 创建项目

打开IntelliJ IDEA,选择 “File” -> “New” -> “Project”。

选择Java、Maven、JDK8,输入包名和项目名称。

Java实现对一次建多层级目录_spring

  • IntelliJ IDEA 有中文插件,英文不行的同学可以下载中文插件。(插件里面搜索Chinese)。

pom.xml

删除其它文件,只保留pom.xml

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId>
    <artifactId>spring-cloud-demo</artifactId>
    <version>1.0.0</version>
    <packaging>pom</packaging>
    <name>spring-cloud-demo</name>
    <description>spring-cloud-demo</description>
</project>

当将 配置为 “pom” 后,Maven会将该项目识别为一个聚合项目或者父项目,而不会生成任何可执行文件。这意味着该项目不会编译、打包和发布任何实际的代码,仅仅作为组织和管理其他子模块的容器。

3. 创建子模块

如上我们创建了一个名称叫做spring-cloud-demo的Maven项目,它是一个聚合项目,我们将在此项目下创建一个个独立的模块。

如下:在项目spring-cloud-demo根目录上右键,选择 “New” -> “Module”,创建一个Spring Initializr 类型的 子模块。

Java实现对一次建多层级目录_spring cloud_02

  • 如果很慢可以修改服务器 url https://start.aliyun.com

如下可以创建多个子模块:

Java实现对一次建多层级目录_spring_03

4. pom.xml下添加module

子模块创建完成后需要在根目录下的pom.xml文件下添加module

<modules>
    <module>module1</module>
    <module>parent</module>
    <module>xxxx</module>
</modules>

5. 总结

多模块项目提供了一种更为模块化、可维护、可扩展的项目管理方式,适用于大型的或者中等规模的项目,可以增强项目的组织性和项目构建的效率。

我们后面的教程都是创建一个个独立的子模块,如consumer-serviceprovider-servicegateway-service等。

完整的代码在仓库的sourcecode/spring-cloud-demo目录下。