【发布时间】:2015-10-07 21:17:47
【问题描述】:
我现在正在构建一个 Spring 应用程序,其中包含多个作为微服务的 Spring 项目。我想将所有这些spring项目放入一个父模块中,然后将其转换为一个多模块的maven项目。但是我遇到了一个问题,因为每个子模块都需要有一个对 spring-cloud-starter-parent 的父引用,所以很自然地,我将它移到了父模块中。但是现在问题发生了,每个子模块都使用不同版本的 spring-cloud-starter-parent。下面一起来看看吧。
父模块的部分POM:
<groupId>com.demo</groupId>
<artifactId>spring-cloud-demo</artifactId>
<version>2.0</version>
<packaging>pom</packaging>
<name>Spring Cloud Demo</name>
<parent>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-parent</artifactId>
<version>Angel.SR3</version>
</parent>
而在子模块中,POM的一部分是:
<parent>
<groupId>com.demo</groupId>
<artifactId>spring-cloud-demo</artifactId>
<version>2.0</version>
<relativePath>../pom.xml</relativePath>
</parent>
虽然这是可行的,因为 spring-cloud-starter-parent 已经在父模块中引入,所以它可以在子模块中使用。但是我突然遇到一个问题,有些子子模块需要有不同的spring-cloud-starter-parent版本,比如1.0.0-SNAPBUILD。
在这种情况下,我如何仍然使用多模块maven项目结构?如何在子模块中使用不同的父版本?或者我必须把它分成两个完全不同的项目?
谢谢。
【问题讨论】:
标签: maven-3 pom.xml spring-cloud multi-module parent-pom