开发者

springBoot不同module之间互相依赖的实现

开发者 https://www.devze.com 2024-08-19 10:34 出处:网络 作者: 陈大头铃儿响叮当
目录项目结构父 POM 文件(my-springboot-project/pom.XML)模块 A 的 POM 文件(module-a/pom.xml)模块 B 的 POM 文件(module-b/pom.xml)模块 C 的 POM 文件(module-c/pom.xml)依赖解析在 Spring Boot 多模块项
目录
  • 项目结构
  • 父 POM 文件(my-springboot-project/pom.XML)
  • 模块 A 的 POM 文件(module-a/pom.xml)
  • 模块 B 的 POM 文件(module-b/pom.xml)
  • 模块 C 的 POM 文件(module-c/pom.xml)
  • 依赖解析

在 Spring Boot 多模块项目中,不同模块之间的依赖通常是通过 Maven 或 Gradle 来管理的。以下是一个示例结构和如何设置这些依赖的示例。

项目结构

假设我们有一个多模块的 Spring Boot 项目,结构如下:

my-springboot-project
│
├── pom.xml                  // 父 POM 文件
├── module-a
│   ├── pom.xml              // Module A 的 POM 文件
│   └──php src
│       └── main
│           └── Java
│               └── com.example.modulea
│                   └── ModuleAApplication.java
│
├── module-b
│   ├─php─ pom.xml              // Module B 的 POM 文件
│   └── src
│       └── main
│           └── java
│               └── com.example.moduleb
│                   └── ModuleBApplication.java
│
└── module-c
    ├── pom.xml              // Module C 的 POM 文件
    └── src
        └── main
            └── java
                └── com.example.modulec
                    └── ModuleCApplication.java

父 POM 文件(my-springboot-project/pom.xml)

在父 POM 文件中,定义所有子模块和共有的依赖。

<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"&gandroidt;
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>my-springboot-project</artifactId>
    <version>1.0.0</version>
    <packaging>pom</packaging>

    <modules>
        <module>module-a</module>
        <module>module-b</module>
        <module>module-c</module>
    </modules>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.7.0</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- 其他共有的依赖 -->
        </dependencies>
    </dependencyManagement>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project>

模块 A 的 POM 文件(module-a/pom.xml)

<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.example</groupId>
        <artifactId>my-springboot-project</artifactId>
        <version>1.0.0</version>
    </parent>

    <artifactId>module-a</artifactId>

    <dependencies>
        <!-- 依赖于 Spring Boot 和其他公共库 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
    </dependencies>
</project>

模块 B 的 POM 文件(module-b/pom.xml)

模块 B 依赖于模块 A,因此在它的 POM 文件中要添加对模块 A 的依赖。

<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://www.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>com.example</groupId>
        <artifactId>my-springboot-project</artifactId>
        <version>1.0.0</version>
    </parent>

    <artifactId>module-b</artifactId>

    <dependencies>
        <dependency>
            <groupId>com.example</groupId>
            <artifactId>module-a</artifactId>
            <version>1.0.0</vehttp://www.devze.comrsion>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
    </dependencies>
</project>

模块 C 的 POM 文件(module-c/pom.xml)

模块 C 也可以依赖于其他模块,如模块 A 和 B。

<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://www.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>com.example</groupId>
        <artifactId>my-springboot-project</artifactId>
        <version>1.0.0</version>
    </parent>

    <artifactId>module-c</artifactId>

    <dependencies>
        <dependency>
            <groupId>com.example</groupId>
            <artifactId>module-a</artifactId>
            <version>1.0.0</version>
        </dependency>
        <dependency>
            <groupId>com.example</groupId>
            <artifactId>module-b</artifactId>
            <version>1.0.0</version>
        </dependency>
        <dependency>
            <gGWLgUeJujroupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
    </dependencies>
</project>

依赖解析

  • 父 POM 文件:定义了所有模块的公共依赖和配置。
  • 子模块 POM 文件:继承自父 POM 文件,可以定义特定于该模块的依赖,并可以依赖其他模块。

通过这种方式,每个模块可以独立开发、测试和运行,但仍然可以共享公共配置和依赖,从而减少重复代码和配置。

到此这篇关于springBoot不同module之间互相依赖的实现的文章就介绍到这了,更多相关springBoot不同module互相依赖内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号