Membangun proyek pakar multimodul

Hai, saya sudah mencari di internet, membaca banyak artikel, jadi pertanyaan dan dokumentasi tetapi saya tidak dapat menemukan solusi, inilah masalah saya.

Saya memiliki proyek maven multimodul yang berisi tiga modul A,B dan C. A dan B independen dan C bergantung pada A dan B, dan tentu saja saya memiliki proyek induk. Saya juga menyiapkan server jenkins untuk membangun proyek ini, dan repositori nexus.

Masalah saya adalah ketika saya membangun proyek, maven membangun A dan B dengan benar tetapi untuk C ia mengunduh artefak yang lebih lama dari repositori nexus dan tentu saja gagal membangun modul C. Bagaimana saya bisa membuat maven menggunakan toples yang sedang dibuat yang mana yang diinstal ke repositori lokal, bukan yang lama di nexus?

Versi A dan B dan C disetel ke 1.1.{build_number}-SNAPSHOT dengan plugin versi maven, dan seperti yang saya pahami, maven harus menggunakan yang lebih baru dari lokal tetapi tidak melakukannya. Awalnya saya tidak ingin memposting ratusan baris pom.xmls tetapi jika Anda membutuhkan bagian saya akan menyediakannya.

Bantuan apa pun akan dihargai. Terima kasih!


person Tibor Bana    schedule 25.06.2015    source sumber
comment
Saya menggunakan Jenkins dan Artifactory, dan ketika saya membangun proyek multimodul, Maven pertama-tama melihat ke repo Maven lokal (.m2/repository). Selanjutnya, ketika build sudah OK, binari (A, B, dan C) diunggah ke Artifactory. Mungkin Anda memiliki opsi dengan Jenkins/Nexus untuk menggunakan repo lokal daripada repo jarak jauh?   -  person Bruno Lavit    schedule 25.06.2015
comment
Hai Bruno, terima kasih atas jawaban Anda. Saya ingin persis apa yang Anda lakukan, tetapi entah bagaimana pakar dalam kasus saya mengabaikan repositori lokal dan saya tidak tahu cara membuatnya menggunakan artefak yang dibuat saat ini. Adakah yang tahu di mana saya harus mencari?   -  person Tibor Bana    schedule 25.06.2015
comment
Mungkin jawaban ini bisa membantu: stackoverflow.com/questions/19180696 /   -  person Bruno Lavit    schedule 25.06.2015
comment
Maven menyegarkan ketergantungan lokal satu kali sehari, jadi mungkin Anda hanya perlu mengubah pengaturan ini: stackoverflow.com/questions/2148111/maven-snapshot-updates   -  person Bruno Lavit    schedule 25.06.2015
comment
Hai, itu disetel ke selalu tetapi saya menyetelnya ke tidak pernah sekarang untuk mencegah pengunduhan artefak snpashot tetapi artefak yang lebih baru di repo lokal saya tetap diabaikan.   -  person Tibor Bana    schedule 25.06.2015
comment
Jika Anda membangun di mesin Anda, Anda mengonfirmasi bahwa hasil pembangunannya OK?   -  person Bruno Lavit    schedule 25.06.2015
comment
Tes terbaik untuk proyek multi modul adalah membersihkan repositori lokal dan menjalankan mvn clean package jika terjadi kesalahan, build Anda tidak dikonfigurasi dengan baik. Itu yang akan saya periksa dulu.   -  person khmarbaise    schedule 25.06.2015
comment
Sepenuhnya setuju dengan @khmarbaise .. kemungkinan besar proyek multi modul Anda memiliki pengaturan yang salah yang mencegah reaktor Maven menyelesaikan A dan B dari C dalam proyek dengan benar.   -  person Manfred Moser    schedule 25.06.2015
comment
Anda harus memposting solusi Anda sendiri sebagai jawaban dan menerimanya.   -  person Manfred Moser    schedule 26.06.2015


Jawaban (1)


Saya telah mengatur nomor versi di pom submodul dan mengubahnya untuk mewarisi nomor versi dari pom induk. Dalam modul pom modul C versi A dan B disetel ke ${project.version}

person Community    schedule 03.11.2015