Apache IVY - Çözümleyiciler

Çözümleyiciler, bir kitaplığın indirileceği konumların bulunması için kullanılır. Bir bağımlılık çözümleyici aynı zamanda ortak görevleri de yerine getirir. Ivy iki tür Çözümleyici sağlar.

  • Composite - Görevlerini yerine getirmek için diğer çözümleyicileri kullanan bir çözümleyici.

  • Standard - Bir çözümleyici gerekli görevleri gerçekleştirir.

Standart Çözücüler

Aşağıdaki tablo standart çözücüler ve kullanımlarını listeler.

Sr.No. İsim (Tip) & Açıklama
1

IvyRep (Standard)

Ivy dosyalarını sarmaşık üzerinde ve eserleri ibiblio'da bulur.
2

IBiblio (Standard)

İbiblio'daki eserleri bulur.
3

BinTray (Standard)

Artefaktları bintray üzerinde bulur.
4

Packager (Standard)

Ivy dosyalarını ve paketleme talimatlarını URL'ler aracılığıyla bulur, talimatları kullanarak yapılar oluşturur.
5

FileSystem (Standard)

Yerel dosya sistemindeki Ivy dosyalarını ve yapıları bulur.
6

URL (Standard)

URL'ler kullanılarak erişilebilen havuzlardaki Ivy dosyalarını ve yapıları bulur.
7

MirroredURL (Standard)

Bir yansıtma listesinden URL'ler kullanılarak erişilebilen havuzlardaki Ivy dosyalarını ve yapıları bulur.
8

VFS (Standard)

Depolarda Apache Commons VFS kullanılarak erişilebilen Ivy dosyalarını ve yapıları bulur.
9

SSH (Standard)

SSH kullanılarak erişilebilen havuzlardaki Ivy dosyalarını ve yapıları bulur.
10

SFTP (Standard)

SFTP kullanılarak erişilebilen havuzlardaki Ivy dosyalarını ve yapıları bulur.
11

Jar (Standard)

Bir kavanoz içindeki havuzlardaki Ivy dosyalarını ve yapıları bulur.
12

Chain (Composite)

Aramayı bir alt çözücüler zincirine delege eder.
13

Dual (Composite)

Aramayı bir çözümleyiciye ve yapay nesneleri diğerine devreder.
14

OBR (Standard)

Modülleri, OSGi obr.xml tarafından listelenen OSGi paketleri olarak çözün.
15

Eclipse updatesite (Standard)

Eclipse güncelleme sitesinde barındırılan modülleri OSGi paketleri olarak çözün.
16

OSGi-agg (Composite)

Aramayı OSGi paketlerini destekleyen bir alt çözücüler zincirine delege eder.

Altında yeni bir projede Tester.java, build.xml ve ivy.xml oluşturalım. E: > ivy2IVY - Görevi Çöz bölümünde açıklandığı gibi bir klasör . Altında bir ayarlar klasörü oluşturunE: > ivy2. İvysettings.xml dosyasını ayarlar klasöründe oluşturun.

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>

Burada, IVY - Yayınlama Görevi bölümünde yayınladığımız iki bağımlılık ekledik, biri ortak kitaplık ve diğeri test olarak .

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>

Buraya, iki çözümleyiciye sahip zincir çözümleyiciyi kullanan bir bileşik çözümleyici ekledik, biri yerel depoda libarileri bulmak için adlandırılmış kitaplık ve diğeri maven genel deposunda ibiblio adlandırılmış.

Projeyi inşa etmek

Tüm dosyalar hazır olduğu için. Sadece konsola git. Şu yöne rotayı ayarlaE: > ivy2 klasörüne gidin ve ant komutunu çalıştırın.

E:\ivy > ant

Ivy harekete geçecek, bağımlılıkları çözecek, aşağıdaki sonucu göreceksiniz.

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

Günlüklerde hem yerel hem de genel depo çözümleyicilerini kullandığımızı doğrulayabilirsiniz.