我现在正在构建一个 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项目结构呢?如何在子模块中使用不同的父版本?或者我必须把它分成两个完全不同的项目?
谢谢。