Apache IVY - Kho lưu trữ cục bộ

Kho lưu trữ cục bộ là kho lưu trữ riêng tư của người dùng. Nó rất hữu ích trong trường hợp người dùng đang sử dụng thư viện có phiên bản đã bị thay đổi ở những nơi khác và có những thay đổi đột ngột. Trong trường hợp kho lưu trữ cục bộ, ivy sẽ sử dụng thư viện có trong kho lưu trữ cục bộ nếu được tìm thấy và sẽ không xem xét các kho lưu trữ công cộng hoặc chia sẻ.

Vị trí mặc định

Theo mặc định, kho lưu trữ cục bộ có trong thư mục $ {ivy.default.ivy.user.dir} / local. Nếu bạn muốn thay đổi nó, hãy sử dụng biến ivy.local.default.root trong tệp ant.

build.xml

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

Các thuộc tính khác như mẫu thường xuân và mẫu tạo tác cũng có thể được tùy chỉnh như sau:

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>

Ghi đè mặc định ivysettings

Theo mặc định, ivy có cấu hình trong ivysettings.xml có trong 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>

Để ghi đè cài đặt kho lưu trữ cục bộ, hãy cập nhật nội dung của 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>