Apache IVY - Repositori Lokal

Repositori lokal adalah repositori pribadi pengguna. Ini sangat berguna jika pengguna menggunakan pustaka yang versinya telah diubah di tempat lain dan memiliki perubahan yang melanggar. Dalam kasus repositori lokal, ivy akan menggunakan perpustakaan yang ada di lokal jika ditemukan dan tidak akan melihat ke repositori publik atau bersama.

Lokasi Default

Secara default, repositori lokal ada di folder $ {ivy.default.ivy.user.dir} / local. Jika Anda ingin mengubahnya, gunakan variabel ivy.local.default.root di file ant.

build.xml

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

Properti lain seperti pola ivy dan pola artefak juga dapat disesuaikan sebagai berikut -

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>

Mengganti default pengaturan ivys

Secara default ivy memiliki konfigurasi di ivysettings.xml yang ada di 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>

Untuk mengganti pengaturan repositori lokal, perbarui konten 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>