Pregunta

¿Alguien sabe cómo especifico en Ivy algo como mirror / mirrorOf en Maven? Estoy trabajando con un proxy Maven local (Nexus) y necesito la herramienta para especificar a cuál de los repositorios principales debería acceder el proxy Nexus.

En Maven simplemente hago:

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

pero no puedo encontrar este tipo de opción en Ivy.

¿Fue útil?

Solución

No creo que tal opción exista directamente. Puede intentar implementar una cadena y poner su repositorio Nexus adelante de central en esa cadena. Si entiendo cómo funcionan correctamente las cadenas (eso es un gran if), Ivy revisará su repositorio antes de central, por lo que siempre que su repositorio tenga los contenidos relevantes, central no será necesario.

Consulte el tutorial para obtener más información.

Otros consejos

Debe crear una resolución pública que haga lo que desea (más detalles @ Ivy docs )

Básicamente guarde el siguiente fragmento en $ USERHOME / .ivy2 / ivysettings-public.xml. Esto debería hacer el truco.

<ivysettings> 
  <resolvers> 
    <ibiblio name="public" m2compatible="true" root="http://localhost:8081/content/groups/public"/> 
  </resolvers> 
</ivysettings>
  • ¡La instalación estándar no modificada tiene 'nexus' en la URL!
  • Si necesita desplegar artefactos, creo que la solución es hacer algo similar al solucionador compartido (vea el enlace a los documentos arriba), pero no lo he intentado.
  • Cambié su URL local para resolver el estándar 'contenido / grupos / público', lo cual es mejor, ya que en el fragmento de configuración de Maven anterior está pasando todas las llamadas a través del espejo, no solo las centrales. Simplemente agregue los repositorios adicionales a ese grupo en la interfaz de usuario de Nexus a medida que surjan y debería estar bien.
  • Si su proyecto carga sus propios ajustes de hiedra que no respetan los valores predeterminados, entonces esta configuración no se cargará y volverá a cero :(

Así es como lo hice funcionar (la respuesta de @Heron no funcionó para mí):

Cree un archivo con este contenido:

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

Referenciarlo desde la construcción de hormigas:

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

Ivy ahora puede resolver dependencias de mi repositorio nexus.

He hecho lo mismo pero con Archiva, lo que es muy similar. Solo tiene que declarar en una nueva cadena lo siguiente:

<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 gestiona los repositorios de Maven 2 (artefactos con metadatos de Maven) generalmente no hay metadatos de Ivy (ivy.xml). Y el diseño de Maven 2 es [organización] / [módulo] / [revisión] / [artefacto] - [revisión]. [Ext].

Solo tenemos que proporcionar la siguiente información

<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>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top