Mam konfigurację projektu Maven jako 1 projekty powłoki i 4 moduły podrzędne. Kiedy próbuję zbudować powłokę. Dostaję:
[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]
Jeśli próbuję zbudować samotny moduł, pojawia się ten sam błąd, tylko zamień module1, jakimkolwiek modułem to był.
Niech wszyscy odwołują się do rodzica w swoich pomponach.
<parent>
<artifactId>shell</artifactId>
<groupId>converter</groupId>
<version>1.0_A0</version>
</parent>
Oto odpowiednie części muszli:
<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>
<relativePath>..</relativePath>
pod<parent></parent>
działało u mnie.mvn install -N & mvn install
Odpowiedzi:
Tylko w celach informacyjnych.
Radości Mavena.
Umieszczenie względnej ścieżki modułów na ../pom.xml rozwiązało problem.
parent
Element marelativePath
element, który trzeba punktu do katalogu nadrzędnego. Domyślnie..
źródło
<relativePath>..</relativePath>
pod<parent></parent>
?../pom.xml
do../<parent folder>/pom.xml
.Można to również naprawić, umieszczając odpowiedni
settings.xml
plik w~/.m2/
katalogu.źródło
maven.repo
tak jak ...Alternatywnym powodem może być również to, że artefakt nadrzędny pochodzi z repozytorium, do którego nie można uzyskać dostępu
pom.xml
, zazwyczaj z repozytorium prywatnego. Rozwiązaniem było udostępnienie tego repozytorium wpom.xml
:W moim przypadku problem był jeszcze bardziej skomplikowany przez Eclipse: repozytorium było aktywne tylko w specjalnym profilu (
<profiles><profile><id>activate-private-repo</id><repositories>...
), a Maven GUI w Eclipse nie pozwalał na ustawienie tego profilu za pomocąCtrl+Alt+P
skrótu.Rozwiązaniem było tymczasowe zadeklarowanie repozytorium poza profilem (bezwarunkowo), uruchomienie
Alt+F5
Maven Update Project, aktywacja profilu i ponowne umieszczenie deklaracji repozytorium w profilu. Jest to raczej błąd Eclipse, a nie Maven.źródło
Nierozdzielalny POM macierzysty POM: Oznacza to, że nie można rozwiązać nadrzędnego repozytorium.
Trun on debug mode:
Ponieważ repozytorium rodzica nie jest częścią centrali maven. Rozwiązaniem jest określenie setting.xml w ~ m2 /, aby pomóc w uzyskaniu macierzystego POM. /Users/username/.m2/settings.xml
W tym kodzie XML może być konieczne określenie informacji o repozytorium.
źródło
Po prostu dodaj
<relativePath />
tak, żeby rodzic w pomie wyglądał następująco:źródło
sprawdź, czy masz poprawne wartości w podrzędnych plikach POM
Na przykład w Eclipse możesz go wyszukać:
źródło
<relativePath>
Jeśli tworzysz w ramach projektu podrzędnego, to
<relativePath>
możesz pomóc w rozwiązaniu problemu nadrzędnego pom.zainstaluj pompę rodzica
Ale jeśli zbudujesz projekt podrzędny z jego folderu,
<relativePath>
nie działa. Możeszinstall
najpierw umieścić nadrzędny pom w swoim lokalnym repozytorium, a następnie zbudować projekt podrzędny.źródło
Zastąp 1.0_A0 $ {project.version}
Uruchom mvn raz. Spowoduje to pobranie wszystkich wymaganych repozytoriów. Po tym kroku możesz wrócić do 1.0_A0.
źródło
Miałem podobny problem w pracy.
Budowanie projektu nadrzędnego bez zależności utworzyło plik parent_project.pom w folderze .m2.
Następnie dodaj moduł potomny w nadrzędnym POM i uruchom kompilację Maven.
źródło
Dodaj zależność w programie
pom.xml:
źródło
Rozwiązałem ten problem na sobie po bardzo długiej próbie, utworzyłem kolejny plik o nazwie „parent_pom.xml” w katalogu plików modułu potomnego w lokalnym i wkleiłem zawartość pliku parent_pom.xml, który znajduje się na zdalnym, do nowo utworzonego pliku „parent_pom.xml” ”. U mnie zadziałało i zniknął komunikat o błędzie.
źródło
Wewnątrz znacznika ścieżki względnej wykonaj następujące czynności
a następnie RunAs-> Maven build
U mnie to zadziałało.
źródło
Miałem problem, że dwa pliki pom.xml kompilacji reaktora miały ten sam artefactId.
źródło