如何在Spring Boot中手动设置父子依赖关系?

为什么使用idea创建父子工程选择maven创建的时候有父项,而使用Springboot创建父子工程的时候pom里面就没有父子依赖关系呢?必须要手动指定?

阅读 1.4k
avatarAI BotBETA

在Spring Boot项目中,父子依赖关系通常是通过Maven的POM文件来设置的。在Maven中,你可以使用<parent><modules>标签来定义父子关系。

如何在Spring Boot中手动设置父子依赖关系?

要手动设置父子依赖关系,你需要进行以下步骤:

  1. 在父项目的pom.xml文件中,确保你已经定义了<packaging>pom</packaging>,这表示该项目是一个聚合项目,而不是一个可执行的JAR或WAR。
  2. 在父项目的pom.xml文件中,添加<modules>标签,并列出所有子项目的模块名。
  3. 在每个子项目的pom.xml文件中,使用<parent>标签指定父项目的坐标(groupId, artifactId, version)。

例如:

父项目(parent-project)的pom.xml

<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId>
    <artifactId>parent-project</artifactId>
    <version>1.0.0</version>
    <packaging>pom</packaging>

    <modules>
        <module>child-project1</module>
        <module>child-project2</module>
    </modules>

    <!-- 其他配置 -->
</project>

子项目(child-project1)的pom.xml

<project>
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.example</groupId>
        <artifactId>parent-project</artifactId>
        <version>1.0.0</version>
    </parent>

    <artifactId>child-project1</artifactId>

    <!-- 其他配置 -->
</project>

为什么使用IDEA创建父子工程时,选择Maven创建有父项,而使用Spring Boot创建时没有父子依赖关系?

当你使用IDEA的Maven项目创建向导时,它会根据Maven的约定来生成项目结构,包括父子关系的设置。然而,当你使用Spring Initializr(通常通过Spring Boot的官方网站或IDEA的Spring Initializr插件)来生成Spring Boot项目时,它默认生成的是一个独立的Spring Boot应用,而不是一个聚合项目。因此,它不会包含父子关系的配置。

Spring Boot项目通常是为了快速启动和运行一个独立的应用而设计的,而不是作为一个父项目来管理多个子模块。如果你需要在Spring Boot项目中管理多个子模块,你需要手动设置父子关系,就像上面描述的那样。

请注意,即使你在Spring Boot项目中设置了父子关系,子项目仍然可以独立运行和测试,因为它们可以包含自己的Spring Boot应用配置。但是,通过父子关系,你可以共享依赖管理、插件配置和其他公共配置,从而使整个项目结构更加清晰和可维护。

1 个回答

很明显,你能提出这个问题,说明你是多模块的maven聚合项目结果,在IDEA中的New Project中有很多选项,其中的Maven Archetype就是创建一个maven模块的,他创建的仅仅是模块,项目并不包括启动入口main,一般用来创建树状项目结构,因此你可以选parent

Spring Boot是创建一个独立的Spring快速功能,本身包含启动入口(main),可以独立运行,这种结构一般位于顶层,而且不是apache的插件完成的创建,是由https://start.spring.io/完成的,无法结合IDEA上下文,完成项目结构的填充

推荐问题
宣传栏