user1999453
user1999453

Reputation: 1423

Maven pom version inheritance

I have 3 projects Parent,Child,SubChild.

Project Parent pom is as follows:

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

<groupId>mu.parent</groupId>
<artifactId>parent-system</artifactId>
<version>1.0</version>
<packaging>pom</packaging>

....

Project Child pom is defined below and its Parent is defined follows:

<modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>mu.parent</groupId>
        <artifactId>parent-system</artifactId>
        <version>1.0</version>
    </parent>
    
    <groupId>mu.dummy.child</groupId>
    <artifactId>child-backend</artifactId>
    <name>child-backend</name>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>

  <modules>
        <module>subChild-app</module>
  
    </modules>


...

Now subChild pom is as follows and the child is defined as parent for subChild :

 <parent>
            <groupId>mu.dummy.child</groupId>
           <artifactId>child-backend</artifactId>
          <version>0.0.1-SNAPSHOT</version>
    </parent>
 <groupId>mu.dummy.subchild</groupId>
    <artifactId>subchild-backend</artifactId>
    <name>subchild-backend</name>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>

  <dependencies>
        <dependency>
            <groupId>org.project.test</groupId>
            <artifactId>project</artifactId>
       <version></version> --version of parent-system???
        </dependency>

    </dependencies>

Is it possible to get version of parent-system(1.0) in subchild-backend please without hardcoding it?

Upvotes: 0

Views: 807

Answers (2)

user944849
user944849

Reputation: 14951

I asked a similar question a while back and determined that tthe groovy-maven-plugin works for this. See this answer.

Upvotes: 0

J Fabian Meier
J Fabian Meier

Reputation: 35805

You can use CI-friendly versions and write ${revision} for the versions, setting this property in the main pom (from which you build everything).

You need to use the flatten Maven plugin, though, to get proper POMs in the repository.

Upvotes: 1

Related Questions