自定义父pom与org.springframework.cloud和spring-boot-starter-parent

时间:2018-02-07 17:11:12

标签: maven spring-boot spring-cloud

我有几个Spring云项目,并且希望将所有常见的依赖项放入我自己的父pom中。许多示例显示了如何使用<dependencyManagement>执行此操作。但在我使用spring-boot-starter-parent和org.springframework.cloud的情况下,似乎无法使用依赖关系管理,因为父级已经成为&#39; spring-boot-starter-parent &#39;和依赖管理也有 org.springframework.cloud 。以下是我的春季云项目之一&#39; pom文件。

<groupId>com.demo</groupId>
<artifactId>demo-customer-service</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>demo-customer-service</name>
<description>Demo project for Spring Boot</description>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.9.RELEASE</version>
    <relativePath /> 
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
</properties>

<dependencyManagement>
    <dependencies>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Dalston.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>  

如上所述,有两个父母:org.springframework.boot启动父和云。那我怎么能拥有自己的父母呢?

请问父母和孩子的pom文件应该如何?

1 个答案:

答案 0 :(得分:1)

你提供的pom可以成为父母pom。父母也可以拥有自己的父母。它是常用的,如果你检查你在github上使用的项目,他们就有父母链 例如,spring-cloud-build-dependencies已将spring-boot-dependencies作为父级。 spring-boot-dependencies已将spring-boot-build作为父级。

在您的父pom中,<dependencies></dependencies>中定义的依赖项将添加到您父项的所有子项中。如果您的所有孩子都在使用这些依赖项,则可以在此标记中添加它们。 (我通常在这里添加单元测试依赖项,但你可以添加任何东西)
父pom通常位于childs pom.xml上方的一个文件夹中。 (但如果它在其他地方,可以使用<relativePath>

| -parent pom.xml
| -child项目文件夹
| --child pom.xml