2010-02-05 17 views
8

Birkaç tane kavanoz dosyam var (bazıları birbiriyle bağlantılı) ve onları projem için sarmaşık olarak yönetmeye çalışıyorum.Projenizdeki/lib içindeki yerel kavanozlara Ivy bağımlılığı nasıl oluşturulur?

"Yerel" (kullanıcı tabanlı) bir depo oluşturmak istemiyorum, çünkü diğer kullanıcıların svn projemi denetlemelerini ve yerel/paylaşılan depo kurulumu olmadan çalıştırmasını istiyorum. Çeşitli nedenlerle, bu dosyaları kullandığımız gerçek depoya ekleyemiyorum.

Proje, bu dosyalara bağlıdır ve bunları SVN'de kullanıyorum. Geçmişte, normal sarmaşık bağımlılık xml dosyalarımı aldım. Bu dosyalar uzak depoya bir ayarlar xml dosya noktalarını kullanır. Geçmişte, son dakikada, bu dosyaları bir lib klasöründen yerleşik klasöre kopyalamak için bir oluşturma görevi kullanmıştım. Bu sarmaşık dosya sistemi çözümleyicisinin özelliklerini göz ardı eden bozuk bir kötüye gibi geliyor.

(3 imara projeler için ivy.xml ve Build.xml başka baz dizinde, aynı ivysettings.xml kullanın.) Orada yol% 90 gibiyim

ben neyi işaret etmelidir, hissetmek projectdir/lib'deki jar dosyaları için çözümleyici zincirindeki ilk çözümümü yapmak için ivysettings.xml dosyasındaki dosya sistemim çözümleyici

cevap

3

buildlist sarmaşık görevine baktınız mı?

3 modülünüzün oluşturulduğu sıralamayı kontrol etmek için bunu kullanabilirsiniz. Her bir modül inşa edildiğinden, zincirdeki bir sonraki modül için kavanozun zamanında mevcut olmasını sağlayarak yerel bir depoya yayınlayabilir.

build.xml 
    ivysettings.xml 
    --> module1 --> build.xml 
        ivy.xml 
    --> module2 --> build.xml 
        ivy.xml 
    --> module3 --> build.xml 
        ivy.xml 

Dosya ayarları tüm projeler tarafından paylaşılabilir. Eğer dışarıdan yüklemek sarmaşık kullanabilirsiniz yayımlamak zaman inşa modülleri yerel olarak kullanılabilir olduğunu bildiren, her şey varsayılan deposundan Nihayet

<ivysettings> 
     <settings defaultResolver="maven2"/> 
     <resolvers> 
       <ibiblio name="maven2" m2compatible="true"/> 

       <filesystem name="local"> 
        <ivy pattern="${local.rep.dir}/.."/> 
        <artifact pattern="${local.rep.dir}/.."/> 
       </filesystem> 
     </resolvers> 
     <modules> 
       <module organisation="org.me" name="module1" resolver="local"/> 
       <module organisation="org.me" name="module2" resolver="local"/> 
       .. 
     </modules> 
</ivysettings> 

(Bu durumda Maven ise) projenizin tüm kullanıcılar tarafından kullanılabilir görevi yerel olarak son olarak yayınladığınız modülleri kopyalamak için

İlgili konular