Birçok (yaklaşık 50'den fazla) maven2 projesini merkezi bir bağlantı noktası havuzuna yerleştirebilmeleri için nasıl organize edeceğimi anlamaya çalışıyorum. mvn deploy
Hedef kullanılırken, hedefin dağıtım Yönetimi etiketinde şu şekilde belirtilmesi gerekir:
<distributionManagement>
<repository>
<id>nexus-site</id>
<url>http://central_nexus/server</url>
</repository>
</distributionManagement>
Şimdi, her bir pom.xml'nin (50'den fazla olanın) bu bloğu tekrar tekrar içermesini istemiyorum. İlk düşüncem settings.xml
dosya olurdu , ama öyle görünüyor ki onu orada tanımlamak (tasarım gereği) mümkün değil. Öyleyse, ilk soru, neden böyle? Mümkünse, tüm geliştiricilere dağıtılabilen maven2 dağıtımındaki settings.xml içinde belirtebilirim.
Bulduğum tek olası çözüm, bu ayarları içeren kuruluş çapında bir master-pom projesi oluşturmak ve diğer tüm pom.xml'leri bu master-pom'a bağlı kılmaktı. <parent>
etiket . Ancak bu, çok modüllü yapılarda biraz garip görünüyor:
- 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)
Genellikle tüm belgelerde, modül pomlarının farklı olanı değil, ana pomu kullanması gerektiğini okurum. Ancak Inheritance v. Aggregation hakkındaki maven web sitesini okuduktan sonra bunun gerçekten mümkün olduğu yazılmıştır.
Bulduğum bir sorun, bu kurulumla ilgili sorunları var gibi görünen maven site oluşturma ile ilgiliydi (modüller, doğrudan geri referansları yoksa doğru şekilde bağlanmazlar)
Peki bu geçerli bir yaklaşım mı? Soruna başka, daha açık, daha basit bir çözüm var mı?