MAVEN: niet-oplosbare ouder POM

Ik heb mijn MAVEN-projectinstellingen als 1 Shell-projecten en 4 Kindermodules. Wanneer ik probeer de schaal te bouwen. Ik krijg:

[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]

Als ik een Lone-module probeer te bouwen, krijg ik dezelfde fout die alleen Module1 wordt vervangen, met welke module het was.

hebben ze allemaal verwijzen naar de ouder in hun poms.

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

Hier is de relevante delen van de Shell 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>

Antwoord 1, Autoriteit 100%

alleen voor referentie.

De geneugten van Maven.

Door het relatieve pad van de modules naar ../pom.xml te plaatsen is het opgelost.

Het parentelement heeft een relativePathelement dat naar de directory van de parent moet verwijzen. Het is standaard ..


Antwoord 2, autoriteit 46%

Het kan ook worden opgelost door het juiste bestand settings.xmlin de directory ~/.m2/te plaatsen.


Antwoord 3, autoriteit 22%

Een alternatieve reden kan ook zijn dat het bovenliggende artefact afkomstig is van een repository die niet toegankelijk is vanuit pom.xml, meestal een privérepository. De oplossing was om die repository aan te bieden in 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>

In mijn geval was het probleem nog gecompliceerder vanwege Eclipse: de repository was alleen actief in een speciaal profiel (<profiles><profile><id>activate-private-repo</id><repositories>...) en Maven GUI in Eclipse stonden het niet toe om dit profiel in te stellen via de sneltoets Ctrl+Alt+P.

De oplossing was om tijdelijk (onvoorwaardelijk) repository buiten het profiel te declareren, Alt+F5Maven Update Project te starten, profiel te activeren en repository-declaratie weer in het profiel te zetten. Dit is eerder een Eclipse-bug, geen Maven-bug.


Antwoord 4, autoriteit 5%

Non-oplosbaar ouder POM:
Dit betekent dat u de ouder repo niet oplossen.

Trun op debug mode:

[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:

Omdat de ouder repository geen deel uitmaakt van de centrale expert.
De oplossing is te geven een setting.xml in ~ m2 / om hulp te leiden de ouder POM. /Users/username/.m2/settings.xml

In dat XML, moet u misschien de repository gegevens op te geven.


Antwoord 5, Autoriteit 4%

Just add <relativePath />, zodat de ouder in pom eruit zou moeten zien:

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

Antwoord 6, Autoriteit 2%

Controleer of u over de juiste waarden in de kinderopvang POM

GroupId
ArtefactId
Version

In Eclipse, bijvoorbeeld, U kunt zoeken naar deze:


Antwoord 7, autoriteit 2%

<relativePath>

Als je bouwt onder een onderliggend project, dan kan <relativePath>je helpen de bovenliggende pom op te lossen.

bovenliggende pom installeren

Maar als u het onderliggende project uit zijn map bouwt, werkt <relativePath>niet. U kunt eerst de bovenliggende pom installin uw lokale repository en vervolgens het onderliggende project bouwen.


Antwoord 8

Vervang 1.0_A0
met
${project.version}

Voer mvn één keer uit. Hiermee worden alle vereiste repository’s gedownload. Na deze stap kunt u terugschakelen naar 1.0_A0.


Antwoord 9

Ik had een soortgelijk probleem op mijn werk.

Het bovenliggende project bouwen zonder afhankelijkheid heeft het bestand parent_project.pom gemaakt in de map .m2.

Voeg vervolgens de onderliggende module toe aan de bovenliggende POM en voer Maven build uit.

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

Antwoord 10

Het was opgelost toen ik settings.xmluit de map .m2 verwijderde.


Antwoord 11

Een afhankelijkheid toevoegen in

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>

Antwoord 12

Ik heb dat probleem bij mij opgelost na heel lang proberen, ik heb een ander bestand gemaakt met de naam “parent_pom.xml” in de map met onderliggende modulebestanden in de lokale map en de inhoud van parent_pom.xml, die zich op afstand bevindt, geplakt in de nieuw aangemaakte ” parent_pom.xml”.
Het werkte voor mij en de foutmelding is verdwenen.


Antwoord 13

Binnen relatieve padtag doe je het volgende

<relative>{project_name}/pom.xml</relative>

en dan RunAs-> Maven bouwen

Het werkte voor mij.


Antwoord 14

Ik had de volgende configuratie in de bovenliggende pom:

 <properties>
    <revision>1.0-SNAPSHOT</revision>
  </properties>
  <groupId>com.company.org</groupId>
  <artifactId>api-reactor-pom</artifactId>
  <version>$revision</version>
  <packaging>pom</packaging>

En ik kreeg de foutmelding ‘Niet-oplosbare ouder-POM’. Ik heb de versie gewijzigd in <version>1.0-SNAPSHOT</version>, en het is weg.

Apache Maven 3.6.3.


Antwoord 15

Ik had het probleem dat twee pom.xml-bestanden voor het bouwen van reactoren dezelfde artefactId hadden.

Other episodes