Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 使用org.springframework.cloud和SpringBootStarter父级定制父级pom_Maven_Spring Boot_Spring Cloud - Fatal编程技术网

Maven 使用org.springframework.cloud和SpringBootStarter父级定制父级pom

Maven 使用org.springframework.cloud和SpringBootStarter父级定制父级pom,maven,spring-boot,spring-cloud,Maven,Spring Boot,Spring Cloud,我有几个spring云项目,希望将所有常见的依赖项也放到我自己的父pom中。许多示例演示了如何使用执行此操作。但在我使用spring boot starter父级和org.springframework.cloud的情况下,使用依赖关系管理似乎不起作用,因为父级已经成为“spring boot starter父级”,依赖关系管理也有org.springframework.cloud。下面是我的SpringCloud项目的pom文件之一 <groupId>com.demo</gr

我有几个spring云项目,希望将所有常见的依赖项也放到我自己的父pom中。许多示例演示了如何使用
执行此操作。但在我使用spring boot starter父级和org.springframework.cloud的情况下,使用依赖关系管理似乎不起作用,因为父级已经成为“spring boot starter父级”,依赖关系管理也有org.springframework.cloud。下面是我的SpringCloud项目的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>  
com.demo
演示客户服务
0.0.1-快照
罐子
演示客户服务
SpringBoot的演示项目
org.springframework.boot
spring启动程序父级
1.5.9.1发布
UTF-8
UTF-8
1.8
org.springframework.cloud
spring云依赖关系
道尔斯顿释放
聚甲醛
进口
org.springframework.boot
弹簧靴起动器执行器
org.springframework.boot
SpringBootStarterWeb
如上所述,有两个父项:org.springframework.bootstarter父项和云。那我怎么能有自己的父母呢


有什么建议吗?父级和子级pom文件应该是怎样的?

您提供的pom可以成为父级pom。父POM也可以有父POM本身。它是常用的,如果你检查你在github上使用的项目,它们会有父链。
例如,
spring云构建依赖项
spring引导依赖项
作为父项
spring引导依赖项
spring引导构建
作为父项

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

|-父pom.xml
|-子项目文件夹

|--child pom.xml

你说的“我怎么能有自己的父母?”是什么意思。我的意思是,一个父pom文件,其中包括org.springframework.cloud、org.springframework.boot依赖项以及其他特定于项目的依赖项,如apache commons、数据库依赖项。因为这些依赖关系对于所有子项目都是通用的。因此,我将能够删除上述pom中定义的版本。您在问题中提供的pom可以是父级。如果您删除依赖项部分(如果您不删除它,它仍然可能是父项)。@miroh。谢谢你的关注。然后2:1。我的父母也有自己的父母?我只是想更清楚一点:这是一个好的做法吗?2.为什么要删除依赖项?因为这些依赖关系在很多子项目中都很常见。非常感谢miroh的回答和解释。