Подтвердить что ты не робот

Использовать репозиторий maven как локальный кэш плюща

Есть ли возможность использовать локальный репозиторий Maven (~/.m2) в качестве локального кеша Ivy (~/.ivy)? У них разные макеты.

Иногда я использую Maven, и иногда я использую SBT, который использует Ivy внизу, поэтому у меня есть 2 копии одинаковых библиотек как в Maven, так и в Ivy. Я хотел бы использовать один и тот же каталог, таким образом сохраняя дисковое пространство и сеть.

Спасибо.

4b9b3361

Ответ 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>