考虑一个Maven项目,其中包含多个模块,包括一些工具(jar文件),以及一些pom文件,供其他人引用,如果他们想要使用这些工具。例如,在父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>
因此,如果有另一个项目希望使用这些工具,它将把ref-pom作为其父级pom进行引用,以便属性可以被继承。这个目的已经达到。
当前问题是,当模块utils也需要将ref-pom作为其父级pom进行引用时(而ref-pom将引用project-parent作为其父级pom),Maven会抱怨'parent.relativePath'指向project-parent而不是ref-pom,并建议再次验证项目结构。
由于这只是一个警告,我仍然可以编译项目,但我想知道设置项目结构的正确方法,以使Maven满意并且达到我的目的。