Tampaknya ada beberapa cara untuk menyusun pom induk dalam membangun multi proyek dan saya bertanya-tanya apakah ada yang punya pemikiran tentang apa kelebihan / kekurangan dalam setiap cara.
Metode paling sederhana untuk memiliki pom induk adalah dengan meletakkannya di root proyek yaitu
myproject/
myproject-core/
myproject-api/
myproject-app/
pom.xml
di mana pom.xml adalah proyek induk sekaligus menjelaskan modul -core -api dan -app
Metode selanjutnya adalah memisahkan induk ke dalam subdirektori sendiri seperti pada
myproject/
mypoject-parent/
pom.xml
myproject-core/
myproject-api/
myproject-app/
Di mana pom induk masih berisi modul tetapi mereka relatif, misalnya ../myproject-core
Akhirnya, ada opsi di mana definisi modul dan induk dipisahkan seperti pada
myproject/
mypoject-parent/
pom.xml
myproject-core/
myproject-api/
myproject-app/
pom.xml
Di mana pom induk berisi konfigurasi "bersama" (dependensiManajemen, properti, dll.) Dan myproject / pom.xml berisi daftar modul.
Niatnya adalah untuk scalable untuk membangun skala besar sehingga harus scalable untuk sejumlah besar proyek dan artefak.
Beberapa pertanyaan bonus:
- Di mana tempat terbaik untuk mendefinisikan berbagai konfigurasi bersama seperti dalam kontrol sumber, direktori penempatan, plugin umum dll. (Saya mengasumsikan orang tua tetapi saya sering digigit oleh ini dan mereka telah berakhir di setiap proyek daripada yang umum).
- Bagaimana plugin maven-release, hudson, dan nexus berurusan dengan bagaimana Anda mengatur multi-proyek Anda (mungkin pertanyaan raksasa, lebih dari itu jika ada yang terperangkap ketika bagaimana membangun multi-proyek telah diatur)?
Sunting: Masing-masing sub proyek memiliki pom.xml mereka sendiri, saya telah meninggalkannya untuk tetap singkat.