Использовать репозиторий maven как локальный кэш плюща
Есть ли возможность использовать локальный репозиторий Maven (~/.m2) в качестве локального кеша Ivy (~/.ivy)? У них разные макеты.
Иногда я использую Maven, и иногда я использую SBT, который использует Ivy внизу, поэтому у меня есть 2 копии одинаковых библиотек как в Maven, так и в Ivy. Я хотел бы использовать один и тот же каталог, таким образом сохраняя дисковое пространство и сеть.
Спасибо.
Ответы
Ответ 1
Вы можете указать кеш и макет кеша, используя
<cache/> Tag
.
Я думаю, вам придется изменить шаблоны для файлов артефактов /ivy.xml.
Тег описан здесь:
http://ant.apache.org/ivy/history/2.0.0/settings/caches.html.
Кажется, что он должен работать, но я никогда не пробовал:).
Ответ 2
Чтобы сохранить сеть, просто настроить плющ для использования локального репозитория Maven
<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>
Ответ 3
Я добавил параметр кеша в следующий файл. Это правильный метод? SBT все еще загружает файлы, которые присутствуют в локальном репо Maven (~/.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>