Saya mencoba mencari cara untuk mengatur banyak (sekitar 50+) proyek maven2, sehingga mereka dapat menyebarkannya ke dalam repositori nexus pusat. Saat menggunakan mvn deploy
tujuan, seseorang perlu menentukan target di tag distributionManagement seperti ini:
<distributionManagement>
<repository>
<id>nexus-site</id>
<url>http://central_nexus/server</url>
</repository>
</distributionManagement>
Sekarang, saya tidak ingin setiap pom.xml (dari 50+ itu) mengandung blok ini berulang kali. Meskipun pertama saya adalah settings.xml
file, tetapi tampaknya tidak mungkin (dengan desain) untuk mendefinisikannya di sana. Jadi, pertanyaan pertama adalah, mengapa demikian? Jika memungkinkan, saya dapat menentukannya di settings.xml dalam distribusi maven2, yang dapat didistribusikan ke semua pengembang.
Satu-satunya solusi yang mungkin saya temukan adalah membuat proyek master-pom seluruh organisasi, yang berisi pengaturan ini, dan membuat semua pom.xml lainnya bergantung pada master-pom melalui <parent>
tag. Tapi ini terlihat agak aneh dalam build multi-modul:
- master configuration POM (pm)
- Project 1 parent pom (p1 with module 1 and module 2 as modules)
- Project 1 module pom (with pm as parent)
- Project 2 module pom (with pm as parent)
Biasanya saya membaca di semua dokumentasi bahwa modul pom harus menggunakan pom induk, bukan yang berbeda. Tapi setelah membaca website maven tentang Warisan v. Agregasi tertulis bahwa itu memang mungkin.
Satu masalah yang saya temukan adalah dengan pembuatan situs maven, yang tampaknya memiliki masalah dengan pengaturan ini (modul tidak terhubung dengan benar jika mereka tidak memiliki referensi balik langsung)
Jadi, apakah ini pendekatan yang valid? Adakah solusi lain yang lebih jelas dan sederhana untuk masalah ini?