Apache IVY - Dépôt local

Un référentiel local est un référentiel privé d'un utilisateur. C'est très utile dans le cas où un utilisateur utilise une bibliothèque dont la version a été modifiée à d'autres endroits et a des changements de rupture. Dans le cas d'un référentiel local, ivy utilisera la bibliothèque présente dans le local si elle est trouvée et ne cherchera pas dans les référentiels publics ou partagés.

Emplacement par défaut

Par défaut, le dépôt local est présent dans le dossier $ {ivy.default.ivy.user.dir} / local. Si vous souhaitez le modifier, utilisez la variable ivy.local.default.root dans le fichier ant.

build.xml

<target name="resolve">
   <property name="ivy.local.default.root" value="/opt/ivy/repository/local"/>
   <ivy:resolve />
</target>

D'autres propriétés comme le motif de lierre et le motif d'artefact peuvent également être personnalisées comme suit -

build.xml

<target name="resolve">
   <property name="ivy.local.default.root" value="/opt/ivy/repository/local"/>
   <property name="ivy.local.default.ivy.pattern" value="[module]/[revision]/ivy.xml"/>
   <property name="ivy.local.default.artifact.pattern" value="[module]/[revision]/[artifact].[ext]"/>
   <ivy:resolve />
</target>

Remplacer les valeurs par défaut d'ivysettings

Par défaut, ivy a ses configurations dans ivysettings.xml présent dans ivy.jar.

ivysettings.xml

<ivysettings>
   <settings defaultResolver="default"/>
   <include url="${ivy.default.settings.dir}/ivysettings-public.xml"/>
   <include url="${ivy.default.settings.dir}/ivysettings-shared.xml"/>
   <include url="${ivy.default.settings.dir}/ivysettings-local.xml"/>
   <include url="${ivy.default.settings.dir}/ivysettings-main-chain.xml"/>
   <include url="${ivy.default.settings.dir}/ivysettings-default-chain.xml"/>
</ivysettings>

Pour remplacer le paramètre de référentiel local, mettez à jour le contenu de ivysettings-local.xml.

ivysettings-local.xml

<ivysettings>
   <property name="ivy.local.default.root" value="${ivy.default.ivy.user.dir}/local" override="false"/>
   <property name="ivy.local.default.ivy.pattern" value="[organisation]/[module]/[revision]/[type]s/[artifact].[ext]" override="false"/>
   <property name="ivy.local.default.artifact.pattern" value="[organisation]/[module]/[revision]/[type]s/[artifact].[ext]" override="false"/>
   <resolvers>
      <filesystem name="local">
         <ivy pattern="${ivy.local.default.root}/${ivy.local.default.ivy.pattern}" />
         <artifact pattern="${ivy.local.default.root}/${ivy.local.default.artifact.pattern}" />
      </filesystem>
   </resolvers>
</ivysettings>