Apache IVY - локальный репозиторий

Локальный репозиторий - это частный репозиторий пользователя. Это очень полезно в случае, если пользователь использует библиотеку, версия которой была изменена в других местах и ​​имеет критические изменения. В случае локального репозитория ivy будет использовать библиотеку, присутствующую в локальном хранилище, если она будет найдена, и не будет проверять публичные или общие репозитории.

Местоположение по умолчанию

По умолчанию локальный репозиторий находится в папке $ {ivy.default.ivy.user.dir} / local. Если вы хотите его изменить, используйте переменную ivy.local.default.root в файле ant.

build.xml

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

Другие свойства, такие как узор плюща и узор артефакта, также можно настроить следующим образом:

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>

Отмена настроек по умолчанию для ivysettings

По умолчанию ivy имеет свои конфигурации в ivysettings.xml, присутствующем в 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>

Чтобы переопределить настройку локального репозитория, обновите содержимое 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>