Domanda

qualcuno sa come posso specificare in Ivy qualcosa come mirror / mirrorOf in Maven? Sto lavorando con un proxy Maven locale (Nexus) e ho bisogno dello strumento per specificare a quale dei repository padre dovrebbe accedere il proxy Nexus.

In Maven faccio semplicemente:

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

ma non riesco a trovare questo tipo di opzione in Ivy.

È stato utile?

Soluzione

Non credo che tale opzione esista direttamente. Potresti provare a implementare una chain e portare avanti il ??tuo repository Nexus di centrale in quella catena. Se capisco come funzionano correttamente le catene (è un grande if), Ivy controllerà il tuo repository prima di central, quindi fino a quando il tuo repository avrà i relativi contenuti central non sarà necessario.

Vedi tutorial per i dettagli.

Altri suggerimenti

Devi creare un resolver pubblico che faccia quello che vuoi (maggiori dettagli @ Ivy docs )

In pratica, salva il seguente frammento in $ USERHOME / .ivy2 / ivysettings-public.xml. Questo dovrebbe fare il trucco.

<ivysettings> 
  <resolvers> 
    <ibiblio name="public" m2compatible="true" root="http://localhost:8081/content/groups/public"/> 
  </resolvers> 
</ivysettings>
  • L'installazione standard non modificata ha "nexus" nell'URL!
  • Se devi distribuire artefatti, penso che la soluzione sia fare qualcosa di simile al risolutore condiviso (vedi link ai documenti sopra), ma non ci ho provato.
  • Ho cambiato l'URL locale per risolverlo con lo standard "contenuto / gruppi / pubblico", il che è meglio poiché nel frammento delle impostazioni del forno sopra stai passando tutte le chiamate attraverso il mirror, non solo quelle al centro. Aggiungi eventuali repository aggiuntivi a quel gruppo nell'interfaccia utente del Nexus man mano che si presentano e dovresti andare bene.
  • Se il tuo progetto carica i propri ivysettings che non rispettano le impostazioni predefinite, queste impostazioni non verranno caricate e tornerai di nuovo a zero :(

Ecco come l'ho fatto funzionare (la risposta di @Heron non ha funzionato per me):

Crea un file con questo contenuto:

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

Riferisciti ad esso dalla build della formica:

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

Ivy è ora in grado di risolvere le dipendenze dal mio repository nexus.

Ho fatto lo stesso ma con Archiva, ciò che è molto simile. Devi solo dichiarare in una nuova catena quanto segue:

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

Archiva gestisce i repository Maven 2 (artefatti con metadati Maven) di solito non ci sono metadati Ivy (ivy.xml). E il layout di Maven 2 è [organizzazione] / [modulo] / [revisione] / [artefatto] - [revisione]. [Ext].

Dobbiamo solo fornire le seguenti informazioni

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

o

  <settings defaultResolver="archiva"/>
  <resolvers>
<ibiblio name="archiva" m2compatible="true" root="http://.../archiva/repository/internal/[organization]/[module]/[revision]/[artifact]-[revision].[ext]"/>
  </resolvers>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top