如何从 2 个不同的父母创建 maven 模块



我正在向项目添加新的maven模块。它将使用弹簧靴。旧模块未使用它。因此,我的新模块必须是父项目的子模块,但同时必须是 spring-boot-starter-parent 的子模块。如何使我的项目成为 2 个不同父级的子项目?

我现在的父母

<parent>
    <groupId>com.somegroup</groupId>
    <artifactId>Parent</artifactId>
    <version>1.0</version>
</parent>

弹簧启动父级

<parent>
    <!-- Your own application should inherit from spring-boot-starter-parent -->
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.1.RELEASE</version>
</parent>

由于Maven项目只能有一个父项目,因此您可以使用不同的方法。您可以在依赖项管理部分中导入spring-boot-dependencies并保留原始父级,而不是继承。

<parent>
    <groupId>com.somegroup</groupId>
    <artifactId>Parent</artifactId>
    <version>1.0</version>
</parent>
<dependencyManagement>
    <dependencies>
        <dependency>
            <!-- Import dependency management from Spring Boot -->
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>1.5.1.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

您可以在官方文档中阅读有关约束的信息,这些约束基本上是关于更改 Spring Boot 提供的依赖项版本的方式。

你需要定义另一个位于 spring-boot 和你自己的模块之间的父模块,示例如下:

<?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>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.3.RELEASE</version>
    </parent>
    <groupId>com.greg</groupId>
    <artifactId>myparent</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>pom</packaging>
    <modules>
        <module>module1</module>
        <module>module2</module>
    </modules>
</project>

最新更新