2009-06-23 27 views
11

Maven'de mirror/mirrorOf gibi Ivy'de nasıl bir şey belirteceğimi bilen var mı? Yerel bir Maven proxy'si (Nexus) ile çalışıyorum ve Nexus proxy'sinin hangi ana depoların erişmesi gerektiğini belirlemek için araca ihtiyacım var.Nexus proxy üzerinden sarmalama

Maven yılında

Sadece yapın: Ben Ivy seçeneği bu tür bulamıyorum

<mirrors> 
    <mirror> 
    <id>central-mirror</id> 
    <mirrorOf>central</mirrorOf> 
    <url>http://localhost:8081/content/repositories/central</url> 
    </mirror> 
</mirrors> 

ama.

cevap

6

Böyle bir seçeneğin doğrudan olduğunu sanmıyorum. Bir chain'u uygulamayı deneyebilir ve Nexus deponuzu bu zincirde merkezi olarak öne çıkarabilirsiniz. Zincirlerin doğru bir şekilde çalıştığını anlarsam (bu büyük bir şeydir), Ivy deponuzu merkezden önce kontrol edecektir, çünkü deponuzun ilgili içeriğinin merkezi olması gerekmediği sürece.

Ayrıntılar için tutorial'a bakın.

+1

Teşekkürler - bundan korktum. Ivy, Maven ile çalıştıktan sonra beklentilerimi karşılamıyor. –

+2

Ivy'nin bağımlılık yönetimine farklı bir yaklaşımı vardır. Mark'ın yorumuna –

+6

-1. Bu farklı bir yol değil, eksik bir özellik. Bir benzetme olarak: 'Proxy Configuration' ayarına sahip olmayan bir tarayıcı kullandığınızı düşünün, bunun web taramasına farklı bir şekilde yaklaştığı anlamına gelmez, aslında ihtiyacınız olduğunda yazılımın kullanılamaz (hacklemesiz) olduğu anlamına gelir. bir proxy ayarlayın. –

-1

Aynısını yaptım ama Archiva ile çok benzer.

<chain name="private"> 
<url name="archiva" m2compatible="true"> 
    <ivy pattern="http://..../archiva/repository/internal/[organisation]/[module]/[revision]/ivy.xml" /> 
    <artifact pattern="http://..../archiva/repository/internal/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" /> 
    <artifact pattern="http://..../archiva/repository/internal/[organisation]/[module]/[revision]/[artifact].[ext]" /> 
    </url> 
</chain> 
+1

Vekil sunucuya ulaşmak için Archiva'yı kullanmak bu soru kapsamında değildir. Bunu bir çok farklı şekilde yapabilirsiniz. Sorun, onu sarmaşıktan da benzer şekilde kullanmaktır. –

+0

Ivy'de böyle bir seçenek var sanmıyorum. –

-1

Archiva Maven 2 depoları (Maven'in meta verilerle eserler) genellikle Ivy meta verileri (ivy.xml) yoktur yönetir: Yalnızca aşağıdaki yeni zincirinde beyan etmek zorunda. Ve Maven 2 düzeni [organizasyon]/[modül]/[revizyon]/[yapı] - [revizyon]. [Ext].

Biz şu bilgileri sağlamak için sadece var

<url name="archiva" m2compatible="true"> 
    <artifact pattern="http://..../archiva/repository/internal/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" /> 
    </url> 
</chain> 

veya

Ne istediğini yapar bir kamu çözümleyicinizi oluşturmak için gereken
<settings defaultResolver="archiva"/> 
    <resolvers> 
<ibiblio name="archiva" m2compatible="true" root="http://.../archiva/repository/internal/[organization]/[module]/[revision]/[artifact]-[revision].[ext]"/> 
    </resolvers> 
+0

Vekil sunucuya ulaşmak için Archiva'yı kullanmak bu soru kapsamında değildir. Bunu bir çok farklı şekilde yapabilirsiniz. Sorun, onu sarmaşıktan da benzer şekilde kullanmaktır. –

8

(Ivy docs @ daha fazla ayrıntı) Temelde

Aşağıdaki snippet'i $ USERHOME/.ivy2/ivysettings-public.xml altına kaydedin. Bu hile yapmalı.

<ivysettings> 
    <resolvers> 
    <ibiblio name="public" m2compatible="true" root="http://localhost:8081/content/groups/public"/> 
    </resolvers> 
</ivysettings> 
  • değiştirilmemiş standart kurulum URL'de 'nexus' var!
  • Artefaktları dağıtmanız gerekiyorsa, çözümün paylaşılan çözümleyiciye benzer bir şey yapması gerektiğini düşünüyorum (yukarıdaki belgelere bakın), ancak denemedim.
  • Yukarıdaki 'maven ayarları bölümündeki tüm çağrıları yalnızca merkeze değil aynadan geçirdiğiniz için daha iyi olan standart' içerik/gruplar/genel 'olarak çözmek için yerel URL'nizi değiştirdim. Nexus UI'deki bu gruba ek depoları ekledikçe ve eklediğinizde ekte bulunmalısınız.
  • proje yüklerinin Eğer, o zaman bu ayarlar yüklenir yapılmaz ve sıfıra :(
+1

Bunu deneyeceğim ama projenin ivysettings.xml dosyasının kullanıcı konfigürasyonunu tamamen geçersiz kıldığı anlaşılıyor ki benim için yararlı olmayacak. Yinede teşekkürler! –

+0

Sorun şu ki, projeyi depodan alabilmeli ve inşa etmeliyiz. Yerel ortamdaki herhangi bir değişiklikle birlikte, pencerede her şey var ... Ama yine de cevabınız için teşekkürler! –

+0

Bu tekniği https://svn.apache.org/repos/asf/ant/core/trunk/[email protected]#checkstyle ile denedim ve herhangi bir etkisi yok gibi görünüyor; mesajlar "http: //repo1.maven.org/maven2/..." adresinden önce indirildi. –

2

Bu benim çalışması yaptı nasıl geri tekrar konum varsayılan Namus yok kendi ivysettings (var @Heron gelen cevap) benim için işe yaramadı:

<ivy:settings file="/Users/wdb/.ivy2/ivysettings-public.xml" /> 
0: karınca yapı 'kendisine

<ivysettings> 
    <settings defaultResolver="default"/> 
    <property name="m2-pattern" value="${user.home}/.m2/repository/[organisation]/[module]/[revision]/[module]-[revision](-[classifier]).[ext]" override="false" /> 
    <resolvers> 
    <chain name="default"> 
     <ibiblio name="public" m2compatible="true" root="http://nexus-server:8081/nexus/content/groups/public"/> 
    </chain> 
    </resolvers> 
</ivysettings> 

refere:

bu içeriğe sahip bir dosya oluşturun

Sarmaşık artık bağımlılarımı nexus deposumdan çözebilir.