Подтвердить что ты не робот

Maven: Неразрешимый родительский POM

У меня есть проект моего maven как 1 проект оболочки и 4 дочерних модуля. Когда я пытаюсь построить оболочку. Я получаю:

[INFO] Scanning for projects...
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]   
[ERROR] The project module1:1.0_A0 (C:\module1\pom.xml) has 1 error
[ERROR] Non-resolvable parent POM: Failure to find shell:pom:1.0_A0 in http://nyhub1.ny.ssmb.com:8081/nexus/content/repositories/JBoss/ was cached in the local repository, resolution will not be reattempted until the update interval of jboss has elapsed or updates are forced and 'parent.relativePath' points at wrong local POM @ line 5, column 11 -> [Help 2]

Если я пытаюсь создать одиночный модуль, я получаю ту же ошибку, что и только модуль module1, с любым модулем.

Пусть все они ссылаются на родителя в своих позах.

<parent>
    <artifactId>shell</artifactId>
    <groupId>converter</groupId>
    <version>1.0_A0</version>
</parent>

Вот соответствующие части оболочки pom:

<groupId>converter</groupId>
<artifactId>shell</artifactId>
<version>1.0_A0</version>
<packaging>pom</packaging>
<name>shell</name>


<modules>
    <module>module1</module>
    <module>module2</module>
    <module>module3</module>
    <module>module4</module>
</modules>
4b9b3361

Ответ 1

Только для справки.

Радости Maven.

Помещение относительного пути модулей к.. /pom.xml разрешило его.

Элемент parent имеет элемент relativePath, который нужно указать в каталог родителя. По умолчанию он равен ..

Ответ 2

Он также может быть исправлен путем размещения правильного файла settings.xml в каталоге ~/.m2/.

Ответ 3

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

<repositories>
    <repository>
        <id>internal-repo</id>
        <name>internal repository</name>
        <url>https://my/private/repo</url>
        <layout>default</layout>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

В моем случае проблема была еще сложнее из-за Eclipse: репозиторий был активен только в специальном профиле (<profiles><profile><id>activate-private-repo</id><repositories>...), а Maven GUI в Eclipse не позволял устанавливать этот профиль с помощью Ctrl+Alt+P ярлыка.

Решением было временно объявить репозиторий за пределами профиля (безусловно), запустить Alt+F5 Maven Update Project, активировать профиль и вернуть объявление репозитория обратно в профиль. Это скорее ошибка Eclipse, а не ошибка Maven.

Ответ 4

Просто добавьте <relativePath />, чтобы родитель в pom выглядел так:

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.4.RELEASE</version>
        <relativePath />
    </parent>

Ответ 5

Неразрешимый родительский POM: Это означает, что вы не можете разрешить родительское репо.

Trun в режиме отладки:

[DEBUG] Reading global settings from **/usr/local/Cellar/maven/3.5.4/libexec/conf/settings.xml**
[DEBUG] **Reading user settings from /Users/username/.m2/settings.xml**
[DEBUG] Reading global toolchains from /usr/local/Cellar/maven/3.5.4/libexec/conf/toolchains.xml
[DEBUG] Reading user toolchains from /Users/username/.m2/toolchains.xml
[DEBUG] Using local repository at /Users/username/.m2/repository
[DEBUG] Using manager EnhancedLocalRepositoryManager with priority 10.0 for /Users/username/.m2/repository
[INFO] Scanning for projects...
[ERROR] [ERROR] Some problems were encountered while processing the POMs:

Потому что родительское репо не является частью Maven Central. Решение состоит в том, чтобы указать setting.xml в ~ m2/, чтобы помочь получить родительский POM./Users/username/.m2/settings.xml

В этом XML может потребоваться указать информацию о хранилище.

Ответ 6

проверьте, есть ли у вас правильные значения в дочерних POM

GroupId
ArtefactId
Version

В Eclipse, например, вы можете найти его: Eclipse: search parent pom

Ответ 7

Заменить 1.0_A0 с $ {Project.version}

Запустите mvn один раз. Это загрузит все необходимые репозитории. Вы можете вернуться к 1.0_A0 после этого шага.

Ответ 8

<relativePath>

Если вы создаете дочерний проект, <relativePath> может помочь вам разрешить родительский pom.

установить родительский пом

Но если вы строите дочерний проект из его папки, <relativePath> не работает. Вы можете install родительский pom сначала в свой локальный репозиторий, а затем создать дочерний проект.

Ответ 9

У меня была похожая проблема на моей работе.

При создании родительского проекта без зависимости создается файл parent_project.pom в папке .m2.

Затем добавьте дочерний модуль в родительский POM и запустите сборку Maven.

<modules>
    <module>module1</module>
    <module>module2</module>
    <module>module3</module>
    <module>module4</module>
</modules>

Ответ 10

Добавить зависимость в

pom.xml:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.8.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
<dependency>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.4.3</version>
</dependency>

Ответ 11

У меня была проблема, что два файла pom.xml сборки реактора имели одинаковый artefactId.