I am now building a spring application which consists of multiple spring projects as micro-services. I want to put all these spring projects into a parent module and then convert it into a multi-module maven project. But I have met a problem as each sub-module needs to have a parent reference to spring-cloud-starter-parent, so natually, I am moving this into the parent module. But now the problem happened, each submodule is using different version of spring-cloud-starter-parent. Let's see below.
part of POM for parent module:
<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>
And in sub-module, part of POM is:
<parent>
<groupId>com.demo</groupId>
<artifactId>spring-cloud-demo</artifactId>
<version>2.0</version>
<relativePath>../pom.xml</relativePath>
</parent>
I though this is working, as the spring-cloud-starter-parent is already introduced in the parent module, so it will be available in the sub-module. BUT I suddenly met a problem, some child sub-module needs to have different spring-cloud-starter-parent version, for example, 1.0.0-SNAPBUILD.
In this case, how can I still use multi-module maven project structure? How can I use different parent version in the sub-module? Or I have to separate this into completely two different projects?
Thanks.