Üst Maven pom pom vs modülleri
Bir multiproject inşa ve kimseye avantajları / dezavantajları her şekilde ne herhangi bir düşünce olsaydı ben merak üst sırada oturan yapısı için birkaç yol var gibi görünüyor.
Üst pom olan en basit yöntem, bir proje, bir başka deyişle kök koyarak olurdu
myproject/
myproject-core/
myproject-api/
myproject-app/
pom.xml
bu pom.xml alt proje olarak açıklar-core-apı ve uygulama modülleri
Bir sonraki yöntemi olarak kendi alt üst ayrı
myproject/
mypoject-parent/
pom.xml
myproject-core/
myproject-api/
myproject-app/
Üst pom hala modülleri içerir ama göreceli, örneğin ../onlar myproject-core
Son olarak, modül tanımı ve üst olarak ayrılmış olduğu seçeneği var
myproject/
mypoject-parent/
pom.xml
myproject-core/
myproject-api/
myproject-app/
pom.xml
Üst pom herhangi bir "" yapılandırma (dependencyManagement, özellikleri vb.) paylaşılan bulunduğu ve myproject/pom.xml modüllerin listesini içerir.
Niyeti projeler ve eserler çok sayıda karşılayabilecek olmalıdır yapı çok büyük ölçüde karşılayabilecek.
Birkaç bonus soru:
- Paylaşılan yapılandırma kaynak kontrolü, dağıtım dizinleri, ortak eklentileri vb çeşitli tanımlamak için en iyi yerdir. (Üst sanıyorum ama genellikle bu tarafından ısırıldım ve her proje yerine, ortak) sona erdi.
- Nasıl maven-plugin release, hudson ve nexus anlaşma ile nasıl kurmak çok projeleri (muhtemelen dev bir soru daha eğer biri olmuştur yakalanmış zaman nasıl bir çok proje inşa edilmiş kurmak)?
Edit: projeler kendi pom.xml bunu kısa tutmak için dışarı bıraktım var sub.
CEVAP
Benim görüşüme göre, bu soruyu cevaplamak için, proje yaşam döngüsü ve sürüm kontrolü açısından düşünmek gerekir. Diğer bir deyişle, üst pom kendi hayatını ayrı ayrı serbest bırakılabilir diğer modülleri veya döngü yani var mı?
Eğer cevap varsaEvet(ve bu durumda en projeleri o bahsedilen soru veya yorum), sonra üst pom ihtiyaçlarını kendi modülünden bir VCS ve bir Maven bakış açısına ve sonun ile bu gibi bir şey de VCS seviyesi:
root
|-- parent-pom
| |-- branches
| |-- tags
| `-- trunk
| `-- pom.xml
`-- projectA
|-- branches
|-- tags
`-- trunk
|-- module1
| `-- pom.xml
|-- moduleN
| `-- pom.xml
`-- pom.xml
Bu kasada biraz acı yapar ve o ile başa çıkmak için ortak bir yol svn:externals
kullanmaktır. Örneğin, trunks
bir dizini ekleyin:
root
|-- parent-pom
| |-- branches
| |-- tags
| `-- trunk
| `-- pom.xml
|-- projectA
| |-- branches
| |-- tags
| `-- trunk
| |-- module1
| | `-- pom.xml
| |-- moduleN
| | `-- pom.xml
| `-- pom.xml
`-- trunks
Aşağıdaki tanım dışındakiler:
parent-pom http://host/svn/parent-pom/trunk
projectA http://host/svn/projectA/trunk
trunks
bir ödeme daha sonra aşağıdaki yerel yapıya neden olur (desen #2):
root/
parent-pom/
pom.xml
projectA/
İsteğe bağlı olarak, hatta pom.xml
trunks
Bir dizin ekleyebilirsiniz:
root
|-- parent-pom
| |-- branches
| |-- tags
| `-- trunk
| `-- pom.xml
|-- projectA
| |-- branches
| |-- tags
| `-- trunk
| |-- module1
| | `-- pom.xml
| |-- moduleN
| | `-- pom.xml
| `-- pom.xml
`-- trunks
`-- pom.xml
pom.xml
Bu" pom: asla serbest, gerçek bir sürümünü içermez bu dosya asla serbest olduğu için, sadece modüllerinin bir listesini içerir. "sahte bir tür Bu dosya ile, bir çıkış bu yapı neden olacaktır (desen #3):
root/
parent-pom/
pom.xml
projectA/
pom.xml
"Hack" bir reaktör başlatmak için izin veren bir ödeme sonra kökünden inşa ve daha kullanışlı. bu Aslında, bu maven projeleri ve REKTÖRLERLE bir depo için kurulum için seviyorumbüyük oluşturur: çok işe yarıyor, terazi de, bütün bu esneklik verir.
Eğer cevap varsahayır(ilk soruya geri), sonra desen #1 (belki işe yarayabilir en basit şey). yaşayabilirsin bence
Şimdi, bonus sorular
- Paylaşılan yapılandırma kaynak kontrolü, dağıtım dizinleri, ortak eklentileri vb çeşitli tanımlamak için en iyi yerdir. (Üst sanıyorum ama genellikle bu tarafından ısırıldım ve her proje yerine, ortak) sona erdi.
Dürüst olmak gerekirse, genel bir cevap vermek nasıl bilmiyorum (seviye mantıklı şeyler mutualize yapar sence "kullanmak") gibi. Her neyse, çocuk gösteri kızları hep devralınan ayarları geçersiz kılabilirsiniz.
- Nasıl maven-plugin release, hudson ve nexus anlaşma ile nasıl kurmak çok projeleri (muhtemelen dev bir soru daha eğer biri olmuştur yakalanmış zaman nasıl bir çok proje inşa edilmiş kurmak)?
Kullandığım Kur iyi çalışıyor, söz hiçbir şey belli.
Aslında,-serbest-maven plugin desen #1 (özellikle serbest zaman ANLIK bağımlılıkları olamaz beri <parent>
bölümü nasıl ele merak ediyorum. Bu tavuk ve yumurta sorunu gibi geliyor ama sadece çalışıyor ve bunu test etmek için çok tembel olduğunu hatırlamıyorum.
Üst Maven pom pom vs modülleri...
İnşa planı hesaplanamadı: Eklenti org....
Bir maven başka bir profili aktive ede...
Nasıl yüklemek " musun;gelişim&quo...
Maven bağımlılık haline gelmiştir tool...