Apache IVY - Hướng dẫn nhanh
Apache Ivy là một công cụ quản lý phụ thuộc rất phổ biến và rất mạnh được sử dụng để quản lý các phụ thuộc trong các dự án dựa trên ANT theo cùng một kiểu, cách Apache Maven quản lý các phụ thuộc.
Apache Ivy dựa trên Apache ANT, tuân theo các nguyên tắc thiết kế tương tự, là một dự án con của Apache ANT và được quản lý và hỗ trợ tích cực bởi Cộng đồng Apache ANT.
Đặc trưng
Sau đây là các tính năng quan trọng của Apache Ivy.
ANT Based- Apache Ivy cung cấp khả năng quản lý phụ thuộc cho các dự án dựa trên ANT. Nó cũng rất đơn giản để sử dụng.
Dependency Reports - Apache Ivy cung cấp các tùy chọn để in biểu đồ phụ thuộc trong html cũng như trong định dạng báo cáo.
Non-intrusive- Apache Ivy không áp đặt bất kỳ hạn chế nào đối với việc phân phối. Ngay cả các tập tin xây dựng cũng không phụ thuộc vào Apache Ivy.
Highly Flexible - Apache Ivy cung cấp rất nhiều cấu hình mặc định và có thể được cấu hình theo yêu cầu rất dễ dàng.
Extendible- Apache Ivy có thể được mở rộng dễ dàng. Bạn có thể xác định kho lưu trữ của riêng mình, trình giải quyết xung đột và chiến lược mới nhất.
Performance- Apache Ivy được xây dựng hướng tới hiệu suất. Nó giữ một bộ nhớ cache của thư viện đã được tải xuống. Trước tiên, hãy xem xét các kho lưu trữ cục bộ để giải quyết sự phụ thuộc hơn là xem xét các kho lưu trữ khác.
Transitive Dependencies - Apache Ivy tự động quản lý các phụ thuộc bắc cầu nếu một dự án hoặc thư viện phụ thuộc vào thư viện khác có thể cần thư viện khác.
Maven Repository- Apache Ivy tuân theo các quy ước tương tự như các quy ước về kho lưu trữ Maven. Apache Ivy có thể giải quyết các phụ thuộc bằng cách sử dụng kho lưu trữ toàn cầu maven.
Maven 2 POMs- Apache Ivy có thể đọc Maven 2 POM như bộ mô tả mô-đun, có thể đặt ivy làm bộ mô tả mô-đun. Do đó, dễ dàng chuyển các dự án hiện có sang các dự án do IVY quản lý.
Publishing - Apache Ivy cung cấp hỗ trợ xuất bản dự án của bạn và đơn giản hóa quá trình triển khai môi trường đa dự án.
Free to Use - Apache Ivy là mã nguồn mở và được sử dụng miễn phí.
Documentation - Apache Ivy có sẵn tài liệu và hướng dẫn rất chi tiết để bạn học.
Apache Ivy cần Java và ANT được cài đặt trên máy của bạn là yêu cầu duy nhất.
Apache Ant được phân phối theo Giấy phép Phần mềm Apache, một giấy phép nguồn mở chính thức được chứng nhận bởi sáng kiến nguồn mở.
Bạn có thể tìm thấy phiên bản Apache Ant mới nhất, bao gồm mã nguồn đầy đủ, các tệp lớp và tài liệu tại http://ant.apache.org.
Cài đặt Apache Ant
Giả sử rằng bạn đã tải xuống và cài đặt Bộ phát triển Java (JDK) trên máy tính của mình. Nếu không, vui lòng làm theo hướng dẫn tại đây .
Đảm bảo rằng biến môi trường JAVA_HOME được đặt thành thư mục nơi JDK của bạn được cài đặt.
Tải xuống các tệp nhị phân từ https://ant.apache.org
Giải nén tệp zip vào một vị trí thuận tiện c: \ folder. sử dụng Winzip, winRAR, 7-zip hoặc các công cụ tương tự.
Tạo một biến môi trường mới có tên ANT_HOME trỏ đến thư mục cài đặt Ant, trong trường hợp này c:\apache-ant-1.9.14-bin thư mục.
Nối đường dẫn đến tệp lô Apache Ant vào biến môi trường PATH. Trong trường hợp của chúng tôi, đây sẽ làc:\apache-ant-1.9.14-bin\bin thư mục.
Xác minh cài đặt Ant Apache
Để xác minh cài đặt thành công Apache Ant trên máy tính của bạn, hãy nhập ant vào dấu nhắc lệnh của bạn.
Bạn sẽ thấy một đầu ra tương tự như -
C:\>ant -version
Apache Ant(TM) version 1.9.14 compiled on March 12 2019
Nếu bạn không thấy kết quả ở trên, hãy xác minh rằng bạn đã thực hiện đúng các bước cài đặt.
Cài đặt Apache Ivy
Tải xuống các tệp nhị phân từ https://ant.apache.org/ivy
Giải nén tệp zip vào một vị trí thuận tiện c: \ folder. sử dụng Winzip, winRAR, 7-zip hoặc các công cụ tương tự.
Sao chép ivy-2.5.0.jar sang c:\apache-ant-1.9.14-bin/lib thư mục.
Xác minh cài đặt Apache Ivy
Để xác minh cài đặt thành công Apache Ivy trên máy tính của bạn, hãy tạo tệp bản dựng sau trong thư mục E:> ivy.
<project name="test ivy installation"
default="test" xmlns:ivy="antlib:org.apache.ivy.ant">
<target name="test" description="Test ivy installation">
<ivy:settings />
</target>
</project>
Bạn sẽ thấy một đầu ra tương tự như -
C:\>ant
Buildfile: E:\ivy\build.xml
test:
BUILD SUCCESSFUL
Total time: 2 seconds
Cài đặt Eclipse
Hướng dẫn này cũng bao gồm việc tích hợp Ant với Eclipse IDE. Do đó, nếu bạn chưa cài đặt Eclipse, hãy tải xuống và cài đặt Eclipse
Để cài đặt Eclipse -
Tải xuống các tệp nhị phân Eclipse mới nhất từ www.eclipse.org
Giải nén các tệp nhị phân Eclipse đến một vị trí thuận tiện, chẳng hạn như thư mục c: \
Chạy Eclipse từ c: \ eclipse \ eclipse.exe
Hãy xem xét ví dụ sau ivy.xml để hiểu thuật ngữ Ivy.
<?xml version="1.0" encoding="ISO-8859-1"?>
<ivy-module version="2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
<info organisation="com.tutorialspoint" module="ivy-test" status="integration">
</info>
<dependencies>
<dependency org="commons-lang" name="commons-lang" rev="2.6" />
</dependencies>
</ivy-module>
Điều khoản Ivy
Sau đây là các điều khoản quan trọng của Hệ thống sinh thái Ivy.
Organisation- Như tên cho thấy, nó đề cập đến tên của công ty, nhà phát triển cá nhân hoặc tên nhóm tạo ra dự án hoặc thư viện. Ví dụ: com.tutorialspoint.
Module- Như tên cho thấy, nó đề cập đến đơn vị hoặc mô-đun có thể tái sử dụng. Một mô-đun thường có một phiên bản đính kèm với nó. Ví dụ: commons-lang, hoặc ivy-test, v.v.
Module Descriptor- Bộ mô tả mô-đun đề cập đến tệp ivy.xml mô tả một mô-đun. Bộ mô tả mô-đun chứa mã định danh (tổ chức, tên, chi nhánh và phiên bản), các tạo tác được xuất bản, cấu hình và phụ thuộc.
Artifact- Tạo tác đề cập đến một tệp duy nhất là có thể phân phối. Ví dụ, một tệp jar. Cổ vật có thể thuộc loại: zip, gz, v.v. Jar, Source Jar, Javadoc Jar là các hiện vật khác nhau của một mô-đun.
Type - Loại xác định danh mục hiện vật như jar, war, src, doc, v.v.
Artifact file name extension - Phần mở rộng phần mềm như .jar,, zip, .gz, v.v.
Module Revision - Số phiên bản duy nhất của mô-đun hoặc số phiên bản của nó.
Status of Revision- Tình trạng của bản sửa đổi cho biết tính ổn định của bản sửa đổi. Sau đây là giá trị quan trọng của trạng thái -
integration - Đại diện cho sự phát triển liên tục, xây dựng hàng đêm, v.v.
milestone - Đại diện cho một bản phân phối nhưng chưa hoàn thành.
release - Đại diện cho thử nghiệm và hoàn thành, một phiên bản chính.
Repository - Tương tự như kho lưu trữ Maven, kho lưu trữ đại diện cho một trang web phân phối nơi ivy có thể tìm kiếm thư viện, hiện vật, mô-đun, v.v. Một kho lưu trữ có thể là công khai, riêng tư hoặc chia sẻ.
Ivy Settings- Apache Ivy tuân theo các nguyên tắc của Maven và đi kèm với rất nhiều cấu hình mặc định. Cài đặt mặc định có thể được ghi đè bằng cách xác định tệp ivysettings.xml.
Apache Ivy tuân theo các nguyên tắc của Maven và đi kèm với rất nhiều cấu hình mặc định. Cài đặt mặc định có thể được ghi đè bằng cách xác định tệp ivysettings.xml.
<ivysettings>
<properties file="${ivy.settings.dir}/ivysettings-file.properties" /> <settings defaultCache="${cache.dir}" defaultResolver="ibiblio" checkUpToDate="false" />
<resolvers>
<ibiblio name="ibiblio" />
<filesystem name="internal">
<ivy pattern="${repository.dir}/[module]/ivy-[revision].xml" /> <artifact pattern="${repository.dir}/[module]/[artifact]-[revision].[ext]" />
</filesystem>
</resolvers>
<modules>
<module organisation="tutorialspoint" name=".*" resolver="internal" />
</modules>
</ivysettings>
Thẻ của Tệp cài đặt Ivy
Sau đây là các thẻ quan trọng của tệp Cài đặt Ivy.
property- Để thiết lập một biến ivy. Cardinality: 0..n
properties- Để thiết lập một biến ivy bằng cách sử dụng tệp thuộc tính. Cardinality: 0..n
settings- Để cấu hình cây thường xuân với các giá trị mặc định. Cardinality: 0..1
include- Để bao gồm một tệp cài đặt khác. Cardinality: 0..n
classpath- Để thêm một vị trí trong classpath được sử dụng để tải các plugin. Cardinality: 0..n
typedef- Để xác định các loại mới trong cây thường xuân. Cardinality: 0..n
lock-strategies- Để xác định các chiến lược khóa. Cardinality: 0..1
caches- Để xác định trình quản lý bộ nhớ cache của kho lưu trữ. Cardinality: 0..1
latest-strategies- Để xác định các chiến lược mới nhất. Cardinality: 0..1
parsers- Để xác định bộ phân tích cú pháp bộ mô tả mô-đun. Cardinality: 0..1
version-matchers- Để xác định các trình so khớp phiên bản mới. Cardinality: 0..1
triggers- Để đăng ký kích hoạt trên các sự kiện thường xuân. Cardinality: 0..1
namespaces- Để xác định không gian tên mới. Cardinality: 0..1
macrodef- Để xác định một trình phân giải macro mới. Cardinality: 0..n
resolvers- Để định nghĩa các trình phân giải phụ thuộc. Cardinality: 0..1
conflict-managers- Để xác định các nhà quản lý xung đột. Cardinality: 0..1
modules- Để xác định các quy tắc giữa các mô-đun và trình phân giải phụ thuộc. Cardinality: 0..1
outputters- Để xác định danh sách các đầu ra báo cáo có sẵn. Cardinality: 0..1
statuses- Để xác định danh sách các trạng thái có sẵn. Cardinality: 0..1
IvyDE là một plugin Eclipse được cung cấp bởi Apache. Để cài đặt IvyDE, hãy khởi động Eclipse và điều hướng đến Trợ giúp> Cài đặt phần mềm mới. Nó hiển thị cửa sổ Phần mềm Có sẵn. Nhập trang web cập nhật IvyDE http://www.apache.org/dist/ant/ivyde/updatesite/và nhấn phím enter. Nó hiển thị các plugin sau.
Nhấp vào Tiếp theo và bạn sẽ thấy màn hình sau.
Nếu bạn gặp bất kỳ lỗi nào trong khi cài đặt plugin thì chỉ cần khởi động lại quá trình. Sau khi cài đặt thành công, bạn sẽ thấy plugin trong eclipe.
Bây giờ bạn có thể thực hiện việc quản lý phụ thuộc bằng Eclipse và Ivy.
Tác vụ giải quyết được sử dụng để giải quyết các phụ thuộc được mô tả trong ivy.xml, tải xuống và đặt chúng vào bộ nhớ cache của ivy.
Đầu tiên, hãy tạo một tệp java Tester.java trong E: > ivy > src > com > tutorialspoint thư mục sẽ hoạt động như thư mục nguồn cho dự án kiến.
Application.java
package com.tutorialspoint;
import org.apache.commons.lang.StringUtils;
public class Application {
public static void main(String[] args) {
String string = StringUtils.upperCase("Ivy Beginner Guide");
System.out.println(string);
}
}
Lớp trên đang sử dụng thư viện lang commons apache để sử dụng lớp StringUtils của nó. Ivy nên tải xuống thư viện này và do đó nó phải được định nghĩa trong phần phụ thuộc trong ivy.xml. Sau đây là ivy.xml được tạo trong E: > ivy thư mục.
ivy.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
<info
organisation="com.tutorialspoint"
module="test"
status="integration">
</info>
<dependencies>
<dependency org="org.apache.commons" name="commons-lang3" rev="3.9"/>
</dependencies>
</ivy-module>
Sau đây là các điều khoản quan trọng.
ivy-module - Phần tử gốc để xác định phiên bản thường xuân, không gian tên, v.v.
info - yếu tố để xác định dự án như một thực thể duy nhất.
organisation - tên của tổ chức
module - tên của mô-đun
status - trạng thái như phát hành, tích hợp hoặc cột mốc.
dependencies - phần tử để chứa các phụ thuộc của dự án dưới dạng các thẻ phụ thuộc có các thuộc tính sau.
org - tên tổ chức của người phụ thuộc
name - tên của người phụ thuộc.
rev - phiên bản của sự phụ thuộc.
build.xml
<project name="test" default="resolve" xmlns:ivy="antlib:org.apache.ivy.ant">
<target name="resolve" description="resolve dependencies">
<ivy:resolve />
</target>
</project<
Sau đây là các điều khoản quan trọng.
project - Phần tử gốc để xác định tên dự án, không gian tên tác vụ mặc định cho ivy, v.v.
target- phần tử mục tiêu để tạo một nhiệm vụ mới và mô tả của nó. Điều này chứa một nhiệm vụ giải quyết cây thường xuân. Khi kiến xây dựng dự án, nó chạy tác vụ giải quyết cây thường xuân, sau đó sẽ giải quyết các phụ thuộc bằng cây thường xuân.
Xây dựng dự án
Vì tất cả các tệp đã sẵn sàng. Chỉ cần vào bảng điều khiển. Hướng đếnE: > ivy thư mục và chạy lệnh ant.
E:\ivy > ant
Ivy sẽ vào cuộc, giải quyết các phụ thuộc, bạn sẽ thấy kết quả sau.
Buildfile: E:\ivy\build.xml
resolve:
[ivy:resolve] :: Apache Ivy 2.5.0 - 20191020104435 :: https://ant.apache.org/ivy
/ ::
[ivy:resolve] :: loading settings :: url = jar:file:/E:/Apache/apache-ant-1.9.14
/lib/ivy-2.5.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
[ivy:resolve] :: resolving dependencies :: com.tutorialspoint#test;working@Acer-
PC
[ivy:resolve] confs: [default]
[ivy:resolve] found commons-lang#commons-lang;2.6 in public
[ivy:resolve] found junit#junit;3.8.1 in public
[ivy:resolve] :: resolution report :: resolve 375ms :: artifacts dl 79ms
---------------------------------------------------------------------
| | modules || artifacts |
| conf | number| search|dwnlded|evicted|| number|dwnlded|
---------------------------------------------------------------------
| default | 2 | 2 | 0 | 0 || 4 | 0 |
---------------------------------------------------------------------
[ivy:retrieve] :: retrieving :: com.tutorialspoint#test [sync]
[ivy:retrieve] confs: [default]
[ivy:retrieve] 0 artifacts copied, 2 already retrieved (0kB/101ms)
BUILD SUCCESSFUL
Total time: 1 second
E:\ivy>
Giải quyết đầu ra
Sau đây là các điều khoản quan trọng.
conf - cấu hình, trong trường hợp của chúng tôi, chúng tôi đang sử dụng cấu hình mặc định.
modules - cho biết tổng số mô-đun, mô-đun đã tải xuống, v.v.
artifacts - cho biết tổng số hiện vật, hiện vật được tải xuống, v.v.
Bạn có thể xác minh các tệp đã tải xuống ở vị trí mặc định của ivy cache trong ${ivy.default.ivy.user.dir} > .ivy2 > cachethư mục. Và $ {ivy.default.ivy.user.dir} theo mặc định là nhà của người dùng: $ HOME.
Tác vụ cài đặt được sử dụng để cài đặt một mô-đun và các phụ thuộc của nó trong một trình phân giải. Nó được sử dụng khi một tạo tác công cộng được tải xuống và sử dụng trong kho lưu trữ riêng tư. Theo mặc định, kho lưu trữ cục bộ của người dùng là kho lưu trữ riêng tư của họ và có trong $ {ivy.default.ivy.user.dir} / local.
Hãy tạo Tester.java, build.xml và ivy.xml như được mô tả trong chương IVY - Resolve Task .
Cập nhật build.xml để sử dụng tác vụ cài đặt ivy.
build.xml
<project name="test" default="resolve" xmlns:ivy="antlib:org.apache.ivy.ant">
<target name="resolve" description="resolve dependencies">
<ivy:resolve />
</target>
<target name="install" description="install dependencies">
<ivy:install organisation="commons-lang" module="commons-lang"
revision="2.6" transitive="true" overwrite="false"
from="public" to="local" />
</target>
</project>
Sau đây là các điều khoản quan trọng.
organisation - tên của tổ chức.
module - tên mô-đun của dự án.
revision - phiên bản của dự án.
from - từ loại kho lưu trữ.
to - đến loại kho lưu trữ.
Xây dựng dự án
Vì tất cả các tệp đã sẵn sàng. Chỉ cần vào bảng điều khiển. Hướng đếnE: > ivy thư mục và chạy lệnh ant.
E:\ivy > ant install
Ivy sẽ vào cuộc, giải quyết các phụ thuộc, bạn sẽ thấy kết quả sau.
E:\ivy > ant install
Buildfile: E:\ivy\build.xml
install:
[ivy:install] :: Apache Ivy 2.5.0 - 20191020104435 :: https://ant.apache.org/ivy
/ ::
[ivy:install] :: loading settings :: url = jar:file:/E:/Apache/apache-ant-1.9.14
/lib/ivy-2.5.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
[ivy:install] :: installing commons-lang#commons-lang;2.6 ::
[ivy:install] :: resolving dependencies ::
[ivy:install] found commons-lang#commons-lang;2.6 in public
[ivy:install] found junit#junit;3.8.1 in public
[ivy:install] :: downloading artifacts to cache ::
[ivy:install] :: installing in local ::
[ivy:install] published commons-lang to C:\Users\Acer\.ivy2\local\commons-lang
\commons-lang\2.6.part\sources\commons-lang.jar
[ivy:install] published commons-lang to C:\Users\Acer\.ivy2\local\commons-lang
\commons-lang\2.6.part\jars\commons-lang.jar
[ivy:install] published commons-lang to C:\Users\Acer\.ivy2\local\commons-lang
\commons-lang\2.6.part\javadocs\commons-lang.jar
[ivy:install] published ivy to C:\Users\Acer\.ivy2\local\commons-lang\commons-
lang\2.6.part\ivys\ivy.xml
[ivy:install] publish committed: moved C:\Users\Acer\.ivy2\local\commons-lang\
commons-lang\2.6.part
[ivy:install] to C:\Users\Acer\.ivy2\local\commons-lang\commons-lang\2
.6
[ivy:install] published junit to C:\Users\Acer\.ivy2\local\junit\junit\3.8.1.p
art\jars\junit.jar
[ivy:install] published ivy to C:\Users\Acer\.ivy2\local\junit\junit\3.8.1.par
t\ivys\ivy.xml
[ivy:install] publish committed: moved C:\Users\Acer\.ivy2\local\junit\junit\3
.8.1.part
[ivy:install] to C:\Users\Acer\.ivy2\local\junit\junit\3.8.1
[ivy:install] :: install resolution report ::
[ivy:install] :: resolution report :: resolve 0ms :: artifacts dl 21ms
---------------------------------------------------------------------
| | modules || artifacts |
| conf | number| search|dwnlded|evicted|| number|dwnlded|
---------------------------------------------------------------------
| default | 2 | 0 | 0 | 0 || 4 | 0 |
---------------------------------------------------------------------
BUILD SUCCESSFUL
Total time: 43 seconds
Bạn có thể xác minh các tệp đã tải xuống trong vị trí kho lưu trữ cục bộ mặc định của ivy cache ${ivy.default.ivy.user.dir} > .ivy2 > local danh mục.
tác vụ truy xuất được sử dụng để giải quyết các phụ thuộc đến một vị trí xác định trong không gian làm việc của dự án.
Hãy tạo Tester.java, build.xml và ivy.xml như được mô tả trong chương IVY - Resolve Task .
Cập nhật build.xml để sử dụng tác vụ truy xuất cây thường xuân.
build.xml
<project name="test" default="resolve" xmlns:ivy="antlib:org.apache.ivy.ant">
<target name="resolve" description="resolve dependencies">
<ivy:resolve />
<ivy:retrieve sync="true" type="jar" />
</target>
</project>
Sau đây là các điều khoản quan trọng.
sync - sync true đảm bảo rằng thư mục lib được cập nhật và mọi tệp bổ sung sẽ bị xóa.
type- loại chỉ thường xuân chỉ sao chép loại hiện vật cụ thể như lọ. Nguồn jar, jar javadoc sẽ được bỏ qua. loại cho jar nguồn là src hoặc nguồn và doc hoặc gói cho jar javadoc.
nhiệm vụ truy xuất sao chép các phụ thuộc đã giải quyết trong thư mục lib của dự án theo mặc định và có thể được thay đổi bằng cách sử dụng thuộc tính mẫu.
Xây dựng dự án
Vì tất cả các tệp đã sẵn sàng. Chỉ cần vào bảng điều khiển. Hướng đếnE: > ivy thư mục và chạy lệnh ant.
E:\ivy > ant
Ivy sẽ vào cuộc, giải quyết các phụ thuộc, bạn sẽ thấy kết quả sau.
Buildfile: E:\ivy\build.xml
resolve:
[ivy:resolve] :: Apache Ivy 2.5.0 - 20191020104435 :: https://ant.apache.org/ivy
/ ::
[ivy:resolve] :: loading settings :: url = jar:file:/E:/Apache/apache-ant-1.9.14
/lib/ivy-2.5.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
[ivy:resolve] :: resolving dependencies :: com.tutorialspoint#test;working@Acer-
PC
[ivy:resolve] confs: [default]
[ivy:resolve] found commons-lang#commons-lang;2.6 in public
[ivy:resolve] found junit#junit;3.8.1 in public
[ivy:resolve] :: resolution report :: resolve 316ms :: artifacts dl 18ms
---------------------------------------------------------------------
| | modules || artifacts |
| conf | number| search|dwnlded|evicted|| number|dwnlded|
---------------------------------------------------------------------
| default | 2 | 2 | 0 | 0 || 4 | 0 |
---------------------------------------------------------------------
[ivy:retrieve] :: retrieving :: com.tutorialspoint#test [sync]
[ivy:retrieve] confs: [default]
[ivy:retrieve] 0 artifacts copied, 2 already retrieved (0kB/2756ms)
BUILD SUCCESSFUL
Total time: 31 seconds
Bạn có thể xác minh các tệp đã tải xuống trong thư mục lib của dự án.
tác vụ cachepath được sử dụng để tạo một đường dẫn nối ANT với các thành phần được phân giải có trong bộ nhớ cache. Vì ANT cần các lọ là đường dẫn classpath để biên dịch các tệp java, nên Ivy cachepath xây dựng đường dẫn này.
Hãy tạo Tester.java, build.xml và ivy.xml như được mô tả trong chương IVY - Resolve Task .
Cập nhật build.xml để sử dụng tác vụ truy xuất cây thường xuân.
build.xml
<project name="test" default="resolve" xmlns:ivy="antlib:org.apache.ivy.ant">
<target name="resolve" description="resolve dependencies">
<ivy:resolve />
<ivy:cachepath pathid="new.classpath" />
</target>
<target name="compile" depends="resolve" description="Compile">
<mkdir dir="build/classes" />
<javac srcdir="src" destdir="build/classes">
<classpath refid="new.classpath" />
</javac>
</target>
</project>
Sau đây là các điều khoản quan trọng.
pathid - id của đường dẫn classpath nơi có các lọ được lưu trong bộ nhớ cache.
nhiệm vụ truy xuất sao chép các phụ thuộc đã giải quyết trong thư mục lib của dự án theo mặc định và có thể được thay đổi bằng cách sử dụng thuộc tính mẫu.
Xây dựng dự án
Vì tất cả các tệp đã sẵn sàng. Chỉ cần vào bảng điều khiển. Hướng đếnE: > ivy thư mục và chạy lệnh ant.
E:\ivy > ant compile
Ivy sẽ vào cuộc, giải quyết các phụ thuộc, bạn sẽ thấy kết quả sau.
Buildfile: E:\ivy\build.xml
resolve:
[ivy:resolve] :: Apache Ivy 2.5.0 - 20191020104435 :: https://ant.apache.org/ivy
/ ::
[ivy:resolve] :: loading settings :: url = jar:file:/E:/Apache/apache-ant-1.9.14
/lib/ivy-2.5.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
[ivy:resolve] :: resolving dependencies :: com.tutorialspoint#test;working@Acer-
PC
[ivy:resolve] confs: [default]
[ivy:resolve] found commons-lang#commons-lang;2.6 in public
[ivy:resolve] found junit#junit;3.8.1 in public
[ivy:resolve] :: resolution report :: resolve 2314ms :: artifacts dl 15ms
---------------------------------------------------------------------
| | modules || artifacts |
| conf | number| search|dwnlded|evicted|| number|dwnlded|
---------------------------------------------------------------------
| default | 2 | 2 | 0 | 0 || 4 | 0 |
---------------------------------------------------------------------
compile:
[javac] E:\ivy\build.xml:13: warning: 'includeantruntime' was not set, defau
lting to build.sysclasspath=last; set to false for repeatable builds
[javac] Compiling 1 source file to E:\ivy\build\classes
BUILD SUCCESSFUL
Total time: 3 seconds
Bạn có thể xác minh tệp lớp đã biên dịch trong thư mục xây dựng dự án.
tác vụ xuất bản được sử dụng để xuất bản các tạo tác hiện tại và các tệp mô tả đã giải quyết của nó lên kho lưu trữ được đề cập.
Hãy tạo Tester.java, build.xml và ivy.xml như được mô tả trong chương IVY - Resolve Task .
Cập nhật build.xml để sử dụng tác vụ xuất bản ivy. Đầu tiên, chúng tôi sẽ tạo một tệp jar và sau đó xuất bản nó.
build.xml
<project name="test" default="resolve" xmlns:ivy="antlib:org.apache.ivy.ant">
<property name = "build.dir" value = "build"/>
<target name="resolve" description="resolve dependencies">
<ivy:resolve />
</target>
<target name = "jar">
<jar destfile = "${build.dir}/lib/application.jar"
basedir = "${build.dir}/classes"> <manifest> <attribute name = "Main-Class" value = "com.tutorialspoint.Application"/> </manifest> </jar> </target> <target name="publish" depends="jar"> <ivy:resolve /> <ivy:publish resolver="local" pubrevision="1.0" overwrite="true"> <artifacts pattern="${build.dir}/lib/[artifact].[ext]" />
</ivy:publish>
</target>
</project>
Sau đây là các điều khoản quan trọng.
resolver - trình phân giải được sử dụng để xuất bản.
pattern - mẫu để xác định vị trí hiện vật.
Ở đây, công việc xuất bản trước tiên xây dựng jar, sau đó giải quyết các phụ thuộc, thiết lập thông tin và sau đó xuất bản tạo tác vào kho lưu trữ cục bộ.
Xây dựng dự án
Vì tất cả các tệp đã sẵn sàng. Chỉ cần vào bảng điều khiển. Hướng đếnE: > ivy thư mục và chạy lệnh ant.
E:\ivy > ant publish
Ivy sẽ vào cuộc, giải quyết các phụ thuộc, bạn sẽ thấy kết quả sau.
E:\ivy > ant publish
Buildfile: E:\ivy\build.xml
jar:
publish:
[ivy:resolve] :: Apache Ivy 2.5.0 - 20191020104435 :: https://ant.apache.org/ivy
/ ::
[ivy:resolve] :: loading settings :: url = jar:file:/E:/Apache/apache-ant-1.9.14
/lib/ivy-2.5.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
[ivy:resolve] :: resolving dependencies :: com.tutorialspoint#test;1.0.0
[ivy:resolve] confs: [default]
[ivy:resolve] found commons-lang#commons-lang;2.6 in public
[ivy:resolve] found junit#junit;3.8.1 in public
[ivy:resolve] :: resolution report :: resolve 121ms :: artifacts dl 15ms
---------------------------------------------------------------------
| | modules || artifacts |
| conf | number| search|dwnlded|evicted|| number|dwnlded|
---------------------------------------------------------------------
| default | 2 | 2 | 0 | 0 || 4 | 0 |
---------------------------------------------------------------------
[ivy:publish] :: publishing :: com.tutorialspoint#test
[ivy:publish] published application to C:\Users\Acer\.ivy2\local\com.tutorials
point\test\1.0\jars\application.jar
[ivy:publish] published ivy to C:\Users\Acer\.ivy2\local\com.tutorialspoint\te
st\1.0\ivys\ivy.xml
BUILD SUCCESSFUL
Total time: 1 second
Bạn có thể xác minh các hiện vật thường xuân xuất bản trong kho lưu trữ cục bộ.
tác vụ thông tin được sử dụng để đặt thông tin cụ thể của cây thường xuân trong một tệp và có thể được sử dụng mà không cần bất kỳ giải pháp phụ thuộc nào.
Hãy tạo Tester.java, build.xml và ivy.xml như được mô tả trong chương IVY - Resolve Task .
Cập nhật build.xml để sử dụng tác vụ xuất bản ivy. Đầu tiên, chúng tôi sẽ tạo một tệp jar và sau đó xuất bản nó. Trước khi xuất bản tác vụ, chúng tôi đã đặt thông tin cây thường xuân cần thiết bằng tác vụ thông tin.
build.xml
<project name="test" default="resolve" xmlns:ivy="antlib:org.apache.ivy.ant">
<property name = "build.dir" value = "build"/>
<target name="resolve" description="resolve dependencies">
<ivy:resolve />
</target>
<target name = "jar">
<jar destfile = "${build.dir}/lib/application.jar" basedir = "${build.dir}/classes">
<manifest>
<attribute name = "Main-Class" value = "com.tutorialspoint.Application"/>
</manifest>
</jar>
</target>
<target name="publish" depends="jar">
<ivy:info file="ivy.xml" />
<ivy:publish resolver="local" pubrevision="1.0" overwrite="true">
<artifacts pattern="${build.dir}/lib/[artifact].[ext]" />
</ivy:publish>
</target>
</project>
Ở đây, công việc xuất bản trước tiên là xây dựng jar, sau đó đặt thông tin bằng tác vụ ivy: info và sau đó xuất bản tạo tác vào kho lưu trữ cục bộ.
Xây dựng dự án
Vì tất cả các tệp đã sẵn sàng. Chỉ cần vào bảng điều khiển. Hướng đếnE: > ivy thư mục và chạy lệnh ant.
E:\ivy > ant publish
Ivy sẽ vào cuộc, giải quyết các phụ thuộc, bạn sẽ thấy kết quả sau.
Buildfile: E:\ivy\build.xml
jar:
publish:
[ivy:info] :: Apache Ivy 2.5.0 - 20191020104435 :: https://ant.apache.org/ivy/
::
[ivy:info] :: loading settings :: url = jar:file:/E:/Apache/apache-ant-1.9.14/l
ib/ivy-2.5.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
[ivy:publish] :: publishing :: com.tutorialspoint#test
[ivy:publish] published application to C:\Users\Acer\.ivy2\local\com.tutorials
point\test\1.0\jars\application.jar
[ivy:publish] published ivy to C:\Users\Acer\.ivy2\local\com.tutorialspoint\te
st\1.0\ivys\ivy.xml
BUILD SUCCESSFUL
Total time: 0 seconds
Nếu chúng ta không đặt nhiệm vụ thông tin thì tác vụ xuất bản sẽ không hoạt động. Sử dụng build.xml được sửa đổi bên dưới và xem lỗi do thiếu thuộc tính tổ chức, v.v.
build.xml
<project name="test" default="resolve" xmlns:ivy="antlib:org.apache.ivy.ant">
<property name = "build.dir" value = "build"/>
<target name="resolve" description="resolve dependencies">
<ivy:resolve />
</target>
<target name = "jar">
<jar destfile = "${build.dir}/lib/application.jar"
basedir = "${build.dir}/classes"> <manifest> <attribute name = "Main-Class" value = "com.tutorialspoint.Application"/> </manifest> </jar> </target> <target name="publish" depends="jar"> <ivy:publish resolver="local" pubrevision="1.0" overwrite="true"> <artifacts pattern="${build.dir}/lib/[artifact].[ext]" />
</ivy:publish>
</target>
</project>
Hướng đến E: > ivy thư mục và chạy lệnh ant.
E:\ivy > ant publish
Ivy sẽ vào cuộc, giải quyết các phụ thuộc, bạn sẽ thấy kết quả sau.
Buildfile: E:\ivy\build.xml
jar:
publish:
[ivy:publish] :: Apache Ivy 2.5.0 - 20191020104435 :: https://ant.apache.org/ivy
/ ::
[ivy:publish] :: loading settings :: url = jar:file:/E:/Apache/apache-ant-1.9.14
/lib/ivy-2.5.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
BUILD FAILED
E:\ivy\build.xml:28: no organisation provided for ivy publish task: It can eithe
r be set explicitly via the attribute 'organisation' or via 'ivy.organisation' p
roperty or a prior call to <resolve/>
Total time: 3 seconds
Trình phân giải được sử dụng để tìm các vị trí từ nơi thư viện sẽ được tải xuống. Trình phân giải phụ thuộc cũng xử lý các tác vụ phổ biến. Ivy cung cấp hai loại Resolvers.
Composite - Một trình phân giải sử dụng các trình phân giải khác để thực hiện nhiệm vụ của nó.
Standard - Một trình phân giải thực hiện các nhiệm vụ được yêu cầu.
Bộ phân giải tiêu chuẩn
Bảng sau liệt kê các trình phân giải tiêu chuẩn và cách sử dụng chúng.
Sr.No. | Tên (Loại) & Mô tả |
---|---|
1 | IvyRep (Standard) Định vị các tệp Ivy trên ivyrep và các tệp tạo tác trên ibiblio. |
2 | IBiblio (Standard) Định vị hiện vật trên ibiblio. |
3 | BinTray (Standard) Định vị hiện vật trên bintray. |
4 | Packager (Standard) Định vị các tệp Ivy và hướng dẫn đóng gói qua URL, tạo tạo tác bằng hướng dẫn. |
5 | FileSystem (Standard) Định vị các tệp Ivy và tạo tác trên hệ thống tệp cục bộ. |
6 | URL (Standard) Định vị tệp Ivy và hiện vật trên kho lưu trữ có thể được truy cập bằng URL. |
7 | MirroredURL (Standard) Định vị các tệp Ivy và hiện vật trên kho lưu trữ có thể được truy cập bằng URL từ danh sách nhân bản. |
số 8 | VFS (Standard) Định vị các tệp Ivy và tạo tác trên kho lưu trữ có thể được truy cập bằng Apache Commons VFS. |
9 | SSH (Standard) Định vị các tệp Ivy và tạo tác trên các kho lưu trữ có thể được truy cập bằng SSH. |
10 | SFTP (Standard) Định vị tệp Ivy và phần mềm tạo tác trên kho lưu trữ có thể được truy cập bằng SFTP. |
11 | Jar (Standard) Định vị các tệp Ivy và hiện vật trên kho lưu trữ trong một cái lọ. |
12 | Chain (Composite) Ủy quyền tìm kiếm cho một chuỗi các trình phân giải phụ. |
13 | Dual (Composite) Ủy quyền tìm kiếm cho một trình phân giải và tạo tác cho một trình phân giải khác. |
14 | OBR (Standard) Giải quyết các mô-đun dưới dạng gói OSGi được liệt kê bởi một obr.xml OSGi. |
15 | Eclipse updatesite (Standard) Giải quyết các mô-đun dưới dạng gói OSGi được lưu trữ trên trang web cập nhật Eclipse. |
16 | OSGi-agg (Composite) Ủy quyền tìm kiếm cho một chuỗi các trình phân giải phụ hỗ trợ các gói OSGi. |
Hãy tạo Tester.java, build.xml và ivy.xml trong một dự án mới trong E: > ivy2thư mục tương tự như được mô tả trong chương IVY - Giải quyết Nhiệm vụ . Tạo một thư mục cài đặt trongE: > ivy2. Tạo ivysettings.xml trong thư mục cài đặt.
build.xml
<project name="test" default="resolve" xmlns:ivy="antlib:org.apache.ivy.ant">
<property name = "build.dir" value = "build"/>
<property name = "base.dir" value = ""/>
<target name="resolve" description="resolve dependencies">
<ivy:resolve />
</target>
<target name="compile" depends="resolve" description="Compile">
<mkdir dir="build/classes" />
<javac srcdir="src" destdir="build/classes">
<classpath refid="new.classpath" />
</javac>
</target>
</project>
ivy.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
<info organisation="org.apache" module="chained-resolvers"/>
<dependencies>
<dependency org="commons-lang" name="commons-lang" rev="2.6" conf="default"/>
<dependency org="com.tutorialspoint" name="test" rev="1.0"/>
</dependencies>
</ivy-module>
Ở đây chúng tôi đã thêm hai phần phụ thuộc, một của thư viện commons-lang và một phần khác dưới dạng thử nghiệm mà chúng tôi đã xuất bản trong IVY - chương Tác vụ xuất bản .
ivysettings.xml
<ivysettings>
<settings defaultResolver="multiresolver"/>
<resolvers>
<chain name="multiresolver">
<filesystem name="libraries">
<artifact pattern="${ivy.settings.dir}/repository/[artifact]-[revision].[ext]"/>
</filesystem>
<ibiblio name="ibiblio" m2compatible="true"/>
</chain>
</resolvers>
</ivysettings>
Ở đây, chúng tôi đã tạo một trình phân giải tổng hợp bằng cách sử dụng trình phân giải chuỗi có hai trình giải quyết, một thư viện có tên để định vị các thư viện trên kho lưu trữ cục bộ và một có tên ibiblio trên kho lưu trữ công cộng maven.
Xây dựng dự án
Vì tất cả các tệp đã sẵn sàng. Chỉ cần vào bảng điều khiển. Hướng đếnE: > ivy2 thư mục và chạy lệnh ant.
E:\ivy > ant
Ivy sẽ vào cuộc, giải quyết các phụ thuộc, bạn sẽ thấy kết quả sau.
Buildfile: E:\ivy2\build.xml
resolve:
[ivy:resolve] :: Apache Ivy 2.5.0 - 20191020104435 :: https://ant.apache.org/ivy
/ ::
[ivy:resolve] :: loading settings :: url = jar:file:/E:/Apache/apache-ant-1.9.14
/lib/ivy-2.5.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
[ivy:resolve] :: resolving dependencies :: org.apache#chained-resolvers;working@
Acer-PC
[ivy:resolve] confs: [default]
[ivy:resolve] found commons-lang#commons-lang;2.6 in public
[ivy:resolve] found com.tutorialspoint#test;1.0 in local
[ivy:resolve] found junit#junit;3.8.1 in public
[ivy:resolve] downloading C:\Users\Acer\.ivy2\local\com.tutorialspoint\test\1.0\
jars\application.jar ...
[ivy:resolve] .. (1kB)
[ivy:resolve] .. (0kB)
[ivy:resolve] [SUCCESSFUL ] com.tutorialspoint#test;1.0!application.jar (13ms)
[ivy:resolve] :: resolution report :: resolve 1085ms :: artifacts dl 22ms
---------------------------------------------------------------------
| | modules || artifacts |
| conf | number| search|dwnlded|evicted|| number|dwnlded|
---------------------------------------------------------------------
| default | 3 | 3 | 1 | 0 || 5 | 1 |
---------------------------------------------------------------------
BUILD SUCCESSFUL
Total time: 9 seconds
Trong nhật ký, bạn có thể xác minh rằng chúng tôi đã sử dụng cả trình giải quyết kho lưu trữ cục bộ và công khai.
Kho lưu trữ cục bộ là kho lưu trữ riêng 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 một 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 có 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>
Một kho lưu trữ được chia sẻ là một kho lưu trữ được chia sẻ ở cấp độ nhóm của một nhóm. Nó là rất phổ biến để được ghi đè trong các tổ chức.
Vị trí mặc định
Theo mặc định, kho lưu trữ được chia sẻ nằm trong thư mục $ {ivy.default.ivy.user.dir} / shared. Nếu bạn muốn thay đổi nó, hãy sử dụng biến ivy.shared.default.root trong tệp ant.
build.xml
<target name="resolve">
<property name="ivy.shared.default.root" value="/opt/ivy/repository/shared"/>
<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.shared.default.root" value="/opt/ivy/repository/shared"/>
<property name="ivy.shared.default.ivy.pattern" value="[organisation]/[module]/[revision]/ivy.xml"/>
<property name="ivy.shared.default.artifact.pattern" value="[organisation]/[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 chia sẻ, hãy cập nhật nội dung của ivysettings-shared.xml.
ivysettings-shared.xml
<ivysettings>
<property name="ivy.shared.default.root" value="${ivy.default.ivy.user.dir}/shared" override="false"/> <property name="ivy.shared.default.ivy.pattern" value="[organisation]/[module]/[revision]/[type]s/[artifact].[ext]" override="false"/> <property name="ivy.shared.default.artifact.pattern" value="[organisation]/[module]/[revision]/[type]s/[artifact].[ext]" override="false"/> <resolvers> <filesystem name="shared"> <ivy pattern="${ivy.shared.default.root}/${ivy.shared.default.ivy.pattern}" /> <artifact pattern="${ivy.shared.default.root}/${ivy.shared.default.artifact.pattern}" />
</filesystem>
</resolvers>
</ivysettings>
Kho lưu trữ công cộng là một kho lưu trữ có thể truy cập được bằng internet và có các mô-đun của bên thứ ba. Theo mặc định ibiblio ở chế độ tương thích m2 là kho lưu trữ công khai. Nó còn được gọi là kho lưu trữ công khai maven 2.
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ông cộng, hãy cập nhật nội dung của ivysettings-public.xml hoặc tạo ivysettings.xml trong thư mục cài đặt của dự án của bạn.
ivysettings.xml
<ivysettings>
<settings defaultResolver="default"/>
<include url="http://customserver/ivy/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>
Cập nhật nội dung ivysetting-public.xml mặc định.
Original - ivysetting-public.xml
<ivysettings>
<resolvers>
<ibiblio name="public" m2compatible="true"/>
</resolvers>
</ivysettings>
Updated - ivysetting-public.xml
<ivysettings>
<resolvers>
<filesystem name="public">
<ivy pattern="/path/to/my/public/rep/[organisation]/[module]/ivy-[revision].xml" />
<artifact pattern="/path/to/my/public/rep/[organisation]/[module]/[artifact]-[revision].[ext]" />
</filesystem>
</resolvers>
</ivysettings>