Utiliser le référentiel maven comme cache local ivy
Est-il possible d'utiliser le référentiel Maven local (~/.m2) comme cache de lierre local (~ / .ivy)? Ils ont des dispositions différentes.
Parfois, j'utilise Maven et parfois J'utilise SBT qui utilise Ivy en dessous, donc j'ai 2 copies des mêmes libs dans Maven et Ivy. Je voudrais utiliser le même répertoire économisant ainsi de l'espace disque et du réseau.
Merci.
3 réponses
Vous pouvez spécifier le cache et la disposition du cache en utilisant le
<cache/> Tag
.
Je pense que vous devrez modifier les motifs pour les artefacts / lierre.des fichiers xml.
La balise est décrite ici:
http://ant.apache.org/ivy/history/2.0.0/settings/caches.html.
Il semble que cela devrait fonctionner, mais je n'ai jamais essayé :).
Pour enregistrer Réseau , Il suffit de configurer ivy pour utiliser le référentiel Maven local
<property name="local-maven2-dir" value="${user.home}/.m2/repository/" />
<filesystem name="local-maven-2" m2compatible="true">
<artifact
pattern="${local-maven2-dir}/[organisation]/[module]/[revision]/[module]-[revision].[ext]" />
<ivy
pattern="${local-maven2-dir}/[organisation]/[module]/[revision]/[module]-[revision].pom" />
</filesystem>
J'ai ajouté le paramètre de cache dans le fichier suivant. Est-ce la bonne méthode? SBT télécharge toujours les fichiers présents dans Maven Local repo (~/.m2/repository
).
$ cat ~/.ivy2/ivysettings.xml
<ivysettings>
<properties environment="env" />
<caches defaultCacheDir="${env.WORKSPACE}/.ivy2/cache" />
<property name="local-maven2-dir" value="${user.home}/.m2/repository/" />
<filesystem name="local-maven-2" m2compatible="true" force="false" local="true">
<artifact pattern="${gerald.repo.dir}/[organisation]/[module]/[revision]/[module]-[revision].[ext]"/>
<ivy pattern="${gerald.repo.dir}/[organisation]/[module]/[revision]/[module]-[revision].pom"/>
</filesystem>
<chain name="internal" dual="true">
<resolver ref="local-maven-2"/>
<resolver ref="apache-snapshot"/>
<resolver ref="maven2"/>
</chain>
</ivysettings>