Saya memiliki pengaturan proyek maven saya sebagai 1 proyek shell dan 4 modul anak. Saat saya mencoba membangun cangkang. Saya mendapat:
[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]
Jika saya mencoba membangun modul mandiri, saya mendapatkan kesalahan yang sama hanya mengganti modul1, dengan modul apa pun itu.
Mintalah mereka semua mereferensikan orang tua di pom mereka.
<parent>
<artifactId>shell</artifactId>
<groupId>converter</groupId>
<version>1.0_A0</version>
</parent>
Berikut adalah bagian-bagian yang relevan dari 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>
<relativePath>..</relativePath>
bawah<parent></parent>
bekerja untuk saya.mvn install -N & mvn install
Jawaban:
Hanya untuk referensi.
Kegembiraan Maven.
Menempatkan jalur relatif modul ke ../pom.xml menyelesaikannya.
The
parent
elemen memilikirelativePath
elemen yang Anda butuhkan untuk menunjuk ke direktori induk. Ini defaultnya..
sumber
<relativePath>..</relativePath>
bawah<parent></parent>
?../pom.xml
ke../<parent folder>/pom.xml
.Ini juga dapat diperbaiki dengan meletakkan
settings.xml
file yang benar ke dalam~/.m2/
direktori.sumber
maven.repo
..Alasan alternatif juga mungkin artefak induk berasal dari repositori yang tidak dapat diakses dari
pom.xml
, biasanya repositori pribadi. Solusinya adalah menyediakan repositori itu dipom.xml
:Dalam kasus saya, masalahnya bahkan lebih rumit karena Eclipse: repositori hanya aktif di profil khusus (
<profiles><profile><id>activate-private-repo</id><repositories>...
) dan GUI Maven di Eclipse tidak mengizinkan untuk menyetel profil ini melaluiCtrl+Alt+P
pintasan.Solusinya adalah mendeklarasikan repositori sementara di luar profil (tanpa syarat), meluncurkan
Alt+F5
Maven Update Project, mengaktifkan profil, dan mengembalikan deklarasi repositori ke dalam profil. Ini agak bug Eclipse, bukan bug Maven.sumber
POM induk yang tidak dapat diselesaikan : Ini berarti Anda tidak dapat menyelesaikan repo induk.
Jalankan mode debug:
Karena repo induk bukan bagian dari pusat maven. Solusinya adalah menentukan setting.xml dalam ~ m2 / untuk membantu menghasilkan POM induk. /Users/username/.m2/settings.xml
Dalam XML itu, Anda mungkin perlu menentukan informasi repositori.
sumber
Tambahkan saja
<relativePath />
sehingga induk di pom akan terlihat seperti:sumber
verifikasi apakah Anda memiliki nilai yang benar di POM anak
Di Eclipse, misalnya, Anda dapat mencarinya:
sumber
<relativePath>
Jika Anda membangun di bawah proyek anak, maka
<relativePath>
dapat membantu Anda menyelesaikan pom induk.instal pom orang tua
Tetapi jika Anda membangun proyek anak dari foldernya,
<relativePath>
tidak akan berhasil. Anda dapatinstall
memasukkan pom induk ke dalam repositori lokal Anda terlebih dahulu, lalu membangun proyek anak.sumber
Ganti 1.0_A0 dengan $ {project.version}
Jalankan mvn sekali. Ini akan mengunduh semua repositori yang diperlukan. Anda dapat beralih kembali ke 1.0_A0 setelah langkah ini.
sumber
Saya memiliki masalah yang sama dalam pekerjaan saya.
Membangun proyek induk tanpa ketergantungan membuat file parent_project.pom di folder .m2.
Kemudian tambahkan modul anak di POM induk dan jalankan build Maven.
sumber
Tambahkan Ketergantungan di
pom.xml:
sumber
Saya memecahkan masalah itu pada saya setelah mencoba yang sangat lama, saya membuat file lain bernama "parent_pom.xml" di direktori file modul anak di konten lokal dan ditempel dari parent_pom.xml, yang terletak di jarak jauh, ke "parent_pom.xml yang baru dibuat ". Ini berhasil untuk saya dan pesan kesalahan telah hilang.
sumber
Di dalam tag jalur relatif lakukan hal berikut
dan kemudian RunAs-> Maven build
Itu berhasil untuk saya.
sumber
Saya memiliki masalah bahwa dua file build pom.xml reaktor memiliki artefactId yang sama.
sumber