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 parent
element heeft een relativePath
element 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.xml
in 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+F5
Maven 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 install
in 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.xml
uit 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.