'parent.relativePath'指向我的com.mycompany:MyProject而不是org.apache:apache – 为什么?

什么是真正的Solr项目目录是在MyProject父目录(但没有模块或2之间的任何maven关系,只是FS方便)​​。 我必须把它放出来吗?

$ mvn -DskipTests clean install [INFO] Scanning for projects... [WARNING] [WARNING] Some problems were encountered while building the effective model for org.apache.lucene:lucene-solr-grandparent:pom:3.1-SNAPSHOT [WARNING] 'parent.relativePath' points at com.mycompany:MyProject instead of org.apache:apache, please verify your project structure @ line 23, column 11 [WARNING] [WARNING] It is highly recommended to fix these problems because they threaten the stability of your build. [WARNING] [WARNING] For this reason, future Maven versions might no longer support building such malformed projects. [WARNING] 

来自pom.xml

 <parent> <groupId>org.apache</groupId> <artifactId>apache</artifactId> <version>8</version> </parent> $ pwd /Users/simpatico/ws/MyProjectBaseDir/solr 

将一个空的 <relativePath>添加到<parent>以便它从存储库中parsing父pom。

  <parent> <groupId>org.apache</groupId> <artifactId>apache</artifactId> <version>8</version> <relativePath></relativePath> </parent> 

这里是相关的文档 。

此function仅用于增强该项目的本地结帐开发。 如果要禁用该function,请将该值设置为空string,并始终从存储库中parsing父POM。
默认值是: ../pom.xml

要么忽略警告,要将源移出不相关的父项或者input元素的正确值。 这个问题是由于relativePath的默认值是../pom.xml引起的,默认值被注入到你的有效的pom中,引发了警告。

该消息可能是由相对于当前项目的父目录中的pom.xml引起的。 父目录中的pom与当前pom的project.parentconfiguration不匹配。

我想你错过了问题中的<relativePath>标签。 我是这样说的,因为没有这个错误不会出现。 话虽如此,

下面的警告语句是你必须关注的。

'parent.relativePath'指向com.mycompany:MyProject而不是org.apache:apache

它清楚地表明你的模块上的标签的相对path指向一个pom文件,它具有与指定的不同的artifactId

这是因为您的parent/pom.xmlartifactId您在module/pom.xml<parent>标记中提到的artifactId之间存在不匹配。 为了避免这个警告,请改变你的module/pom.xml<parent> ,如下所示。

  <parent> <groupId>com.mycompany</groupId> <artifactId>MyProject</artifactId> <version>8</version> <relativePath>path-to-your-parent-pom.xml</relativePath> </parent>