Question

Est-ce que quelqu'un sait comment spécifier dans Ivy quelque chose comme miroir / mirrorOf dans Maven? Je travaille avec un proxy Maven local (Nexus) et j'ai besoin de cet outil pour spécifier le référentiel parent auquel le proxy Nexus doit accéder.

Dans Maven, je fais simplement:

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

mais je ne trouve pas ce genre d’option dans Ivy.

Était-ce utile?

La solution

Je ne pense pas qu'une telle option existe directement. Vous pouvez essayer d'implémenter une chaîne et mettre votre référentiel Nexus à l'avant-plan. de central dans cette chaîne. Si je comprends comment les chaînes fonctionnent correctement (ce qui est un gros si), Ivy vérifiera votre référentiel avant le fichier central, aussi longtemps que votre référentiel aura le contenu central nécessaire, il ne sera pas nécessaire.

Consultez le didacticiel pour plus de détails.

Autres conseils

Vous devez créer un résolveur public qui fait ce que vous voulez (plus de détails @ Ivy docs )

Sauvegardez l’extrait suivant sous $ USERHOME / .ivy2 / ivysettings-public.xml. Cela devrait faire l'affaire.

<ivysettings> 
  <resolvers> 
    <ibiblio name="public" m2compatible="true" root="http://localhost:8081/content/groups/public"/> 
  </resolvers> 
</ivysettings>
  • L'installation standard non modifiée a "lien" dans l'URL!
  • Si vous devez déployer des artefacts, je pense que la solution consiste à faire quelque chose de similaire au résolveur partagé (voir le lien vers la documentation ci-dessus), mais je n'ai pas essayé.
  • J'ai modifié votre URL locale pour la définir comme suit: "contenu / groupes / public", ce qui est mieux, car dans le fragment de paramètres maven ci-dessus, vous passez tous les appels dans le miroir, pas seulement ceux au centre. Ajoutez simplement des référentiels supplémentaires à ce groupe dans l'interface utilisateur Nexus au fur et à mesure qu'ils arrivent et tout devrait bien se passer.
  • Si votre projet charge son propre ivysettings qui ne respecte pas les valeurs par défaut, ces paramètres ne seront pas chargés et vous serez de nouveau à zéro: (

Voici comment je l'ai fait fonctionner (la réponse de @Heron n'a pas fonctionné pour moi):

Créez un fichier avec ce contenu:

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

Référez-vous à partir de la construction de la fourmi:

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

Ivy est maintenant capable de résoudre les dépendances de mon référentiel Nexus.

J'ai fait la même chose mais avec Archiva, ce qui est très similaire. Il vous suffit de déclarer dans une nouvelle chaîne les éléments suivants:

<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 gère les référentiels Maven 2 (artefacts avec métadonnées Maven) Il n'y a généralement pas de métadonnées Ivy (ivy.xml). Et la mise en page Maven 2 est [organisation] / [module] / [révision] / [artefact] - [révision]. [Ext].

Nous n'avons qu'à fournir les informations suivantes

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

ou

  <settings defaultResolver="archiva"/>
  <resolvers>
<ibiblio name="archiva" m2compatible="true" root="http://.../archiva/repository/internal/[organization]/[module]/[revision]/[artifact]-[revision].[ext]"/>
  </resolvers>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top