Consider a maven project with modules consists of some utilities (jar) and some poms for others to reference to if they want to use some of these utilities.
e.g. inside the parent pom.xml
<artifactId>project-parent</artifactId>
<modules>
<module>client-ref-pom</module> (a module with just one pom.xml)
<module>server-ref-pom</module> (a module with just one pom.xml)
<module>client-utils</module> (a module with some utility classes, needs to ref. client-ref-pom)
<module>server-utils</module> (a module with some utility classes, needs to ref. server-ref-pom)
<module>utils</module> (a module with some utility classes, needs to ref. project-parent)
</modules>
So if there is another project wishes to use the utils, it will reference to ref-pom as its parent pom, so that the properties can be inherited. This purpose is served.
The current issue is when the module utils also needs to reference to ref-pom as its parent pom (and ref-pom will ref. project-parent as its parent pom), maven is complaining about 'parent.relativePath' pointing to project-parent instead of ref-pom, suggesting to verify again the project structure.
As that is just a warning, I can still compile the project, but I wonder the proper way to setup the project structure so that maven is happy and my purpose is served.