Apache IVY - Bộ phân giải
Trình phân giải được sử dụng để tìm vị trí từ nơi tải xuống thư viện. 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 cách sử dụng hướng dẫn. |
5 | FileSystem (Standard) Định vị tệp Ivy và tạo tác trên hệ thống tệp cục bộ. |
6 | URL (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. |
7 | MirroredURL (Standard) Định vị các tệp Ivy và hiện vật trên các 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 các kho lưu trữ có thể được truy cập bằng Apache Commons VFS. |
9 | SSH (Standard) Định vị tệp Ivy và tạo tác trên kho lưu trữ có thể được truy cập bằng SSH. |
10 | SFTP (Standard) Định vị các tệp Ivy và các 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 là 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 giải quyết 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.