Çok pompalı bir yapıda ana pomları yapılandırmanın birkaç yolu var gibi görünüyor ve herkesin her şekilde avantajları / dezavantajları hakkında herhangi bir düşüncesi olup olmadığını merak ediyorum.
Bir ebeveyn pom'a sahip olmanın en basit yöntemi onu bir projenin köküne koymak olacaktır.
myproject/
myproject-core/
myproject-api/
myproject-app/
pom.xml
burada pom.xml hem ana projedir hem de -core -api ve -app modüllerini açıklar
Bir sonraki yöntem, üst öğeyi kendi alt dizinine ayırmaktır.
myproject/
mypoject-parent/
pom.xml
myproject-core/
myproject-api/
myproject-app/
Üst pompanın hala modülleri içerdiği ancak göreceli oldukları, örneğin ../myproject-core
Son olarak, modül tanımının ve üst öğenin
myproject/
mypoject-parent/
pom.xml
myproject-core/
myproject-api/
myproject-app/
pom.xml
Üst pompanın herhangi bir "paylaşılan" konfigürasyon içerdiği (bağımlılık Yönetimi, özellikler vb.) Ve myproject / pom.xml modüllerin listesini içerir.
Niyet, büyük ölçekli bir yapıya ölçeklenebilir olmaktır, bu nedenle çok sayıda proje ve eser için ölçeklenebilir olmalıdır.
Birkaç bonus soru:
- Kaynak kontrolü, dağıtım dizinleri, ortak eklentiler vb. Gibi çeşitli paylaşılan yapılandırmayı tanımlamak için en iyi yer neresidir (Ebeveyni varsayıyorum ancak sık sık bunun tarafından ısırıldım ve daha ziyade her projede sona erdi. ortak bir).
- Maven-release eklentisi, hudson ve nexus, çoklu projelerinizi nasıl kurduğunuzla nasıl başa çıkıyor (muhtemelen dev bir soru, çok projeli bir yapı kurulduğunda kimse yakalandıysa daha fazla)?
Düzenleme: Alt projelerin her biri kendi pom.xml var, ben onu tutmak için dışarıda bıraktım.