Ivy via Nexus proxy

Czy ktoś wie jak określić w Ivy coś takiego jak mirror/mirrorOf w Maven? Pracuję z lokalnym Proxy Maven (Nexus) i potrzebuję narzędzia, aby określić, do którego z repozytoriów nadrzędnych powinien mieć dostęp proxy Nexus.

W Mavenie robię po prostu:

<mirrors>
  <mirror>
    <id>central-mirror</id>
    <mirrorOf>central</mirrorOf>
    <url>http://localhost:8081/content/repositories/central</url>
  </mirror>
</mirrors>
Ale nie mogę znaleźć takiej opcji w Ivy.
Author: Matthias Hryniszak, 2009-06-23

5 answers

Myślę, że taka opcja nie istnieje bezpośrednio. Możesz spróbować zaimplementować łańcuch i umieścić swoje repozytorium Nexus przed central w tym łańcuchu. Jeśli rozumiem, jak łańcuchy działają poprawnie( to duże jeśli), Ivy sprawdzi twoje repozytorium przed central, więc dopóki twoje repozytorium ma odpowiednią zawartość central nie będzie potrzebne.

Zobacz tutorial Po szczegóły.

 6
Author: Rich Seller,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-08 16:26:56

Musisz utworzyć publiczny resolver, który zrobi to ,co chcesz (więcej szczegółów @ Ivy docs)

Zasadniczo zapisz poniższy fragment pod $USERHOME/.ivy2/ivysettings-publiczne.xml. To powinno załatwić sprawę.

<ivysettings> 
  <resolvers> 
    <ibiblio name="public" m2compatible="true" root="http://localhost:8081/content/groups/public"/> 
  </resolvers> 
</ivysettings>
  • niezmodyfikowana standardowa instalacja ma 'nexus' w adresie URL!
  • jeśli potrzebujesz wdrożyć artefakty, myślę, że rozwiązaniem jest zrobienie czegoś podobnego do współdzielonego resolvera( patrz link do dokumentów powyżej), ale nie próbowałem.
  • I changed your lokalny adres URL do rozwiązania do standardowego "content/groups / public" co jest lepsze, ponieważ w powyższym fragmencie ustawień Mavena przekazujesz wszystkie połączenia przez lustro, a nie tylko te do centrali. Po prostu dodaj dodatkowe repozytoria do tej grupy w interfejsie użytkownika Nexus, gdy pojawią się i powinno być dobrze.
  • Jeśli twój projekt wczytuje własne ivysettings, które nie honorują domyślnych ustawień, wtedy te ustawienia nie zostaną załadowane i znowu powrócisz do zera: (
 8
Author: Heron,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-12 19:53:50

Tak to działa (odpowiedź od @ Heron nie działa dla mnie):

Utwórz plik o tej zawartości:

<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>

Oceń go z budowy mrówki:

<ivy:settings file="/Users/wdb/.ivy2/ivysettings-public.xml" />

Ivy jest teraz w stanie rozwiązać zależności z mojego repozytorium nexus.

 2
Author: Wim Deblauwe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-25 15:41:06

Zrobiłem to samo, ale z Archivą, co jest bardzo podobne. Musisz tylko zadeklarować w nowym łańcuchu następujące:

<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
Author: David García González,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-06 15:30:36

Archiva zarządza repozytoriami Maven 2 (artefakty z metadanymi Maven) zazwyczaj nie ma metadanych Ivy (ivy.xml). A układ Mavena 2 to [organizacja]/[moduł]/[revision] / [artifact]-[revision].[ext].

Musimy tylko podać następujące informacje

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

Lub

  <settings defaultResolver="archiva"/>
  <resolvers>
<ibiblio name="archiva" m2compatible="true" root="http://.../archiva/repository/internal/[organization]/[module]/[revision]/[artifact]-[revision].[ext]"/>
  </resolvers>
 -1
Author: Gregory Boissinot,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-11-04 21:43:55