'parent.relativePath' указывает на мою com.mycompany: MyProject вместо org.apache: apache - Почему?

Верно, что каталог проекта Solr находится в родительском каталоге MyProject (но там нет модуля или каких-либо связей между двумя, просто удобством 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

Ответ 1

Добавьте пустой <relativePath> в <parent>, чтобы он разрешил родительский pom из репозиториев.

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

Вот соответствующий doc.

Эта функция предназначена только для улучшения разработки локальной проверки этого проекта. Установите значение в пустую строку, если вы хотите отключить эту функцию и всегда разрешать родительский POM из репозиториев.
Значение по умолчанию: ../pom.xml.

Ответ 2

игнорировать предупреждение, переместить источники из неродственного родителя или ввести правильное значение элемента. Проблема вызвана значением по умолчанию для relativePath, которое является.. /pom.xml, и это значение по умолчанию вводится в ваш эффективный pom, вызывая предупреждение.

Ответ 3

Это сообщение может быть вызвано pom.xml в родительском каталоге относительно вашего текущего проекта. POM в родительском каталоге не соответствует конфигурации project.parent текущего pom.

Ответ 4

Я думаю, что вы упустили тег <relativePath> в вопросе. Я говорю это, потому что без него Эта ошибка не возникнет. При этом

Строкой, которую вам нужно будет сконцентрироваться, является приведенное ниже предупреждение.

'parent.relativePath' указывает на com.mycompany: MyProject вместо org.apache: апач

В нем четко сказано, что относительный путь тега в вашем модуле указывает на файл pom, который имеет разные артефакты по сравнению с тем, что указано

Это связано с несоответствием между artifactId вашего parent/pom.xml и artifactId, указанным в теге <parent> module/pom.xml. Чтобы избежать предупреждения, измените <parent> на module/pom.xml, как показано ниже.

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