'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>