SORU
2 Ocak 2010, CUMARTESİ


Ü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
4 Ocak 2010, PAZARTESİ


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Barnacules Nerdgasm

    Barnacules N

    20 Temmuz 2006
  • Elly

    Elly

    3 EKİM 2005
  • MatheusDosGames

    MatheusDosGa

    28 Aralık 2011