Apache IVY - Résolveurs

Les résolveurs sont utilisés pour rechercher les emplacements à partir desquels une bibliothèque doit être téléchargée. Un résolveur de dépendances gère également les tâches courantes. Ivy propose deux types de résolveurs.

  • Composite - Un résolveur qui utilise d'autres résolveurs pour effectuer ses tâches.

  • Standard - Un résolveur effectue les tâches requises.

Résolveurs standard

Le tableau suivant répertorie les résolveurs standard et leur utilisation.

N ° Sr. Nom (type) et description
1

IvyRep (Standard)

Localise les fichiers Ivy sur ivyrep et les artefacts sur ibiblio.
2

IBiblio (Standard)

Localise les artefacts sur ibiblio.
3

BinTray (Standard)

Localise les artefacts sur bintray.
4

Packager (Standard)

Localise les fichiers Ivy et les instructions d'emballage via des URL, crée des artefacts à l'aide d'instructions.
5

FileSystem (Standard)

Localise les fichiers et les artefacts Ivy sur le système de fichiers local.
6

URL (Standard)

Localise les fichiers Ivy et les artefacts sur des référentiels accessibles à l'aide d'URL.
sept

MirroredURL (Standard)

Localise les fichiers Ivy et les artefacts dans des référentiels accessibles à l'aide d'URL à partir d'une liste de miroirs.
8

VFS (Standard)

Localise les fichiers Ivy et les artefacts sur des référentiels accessibles à l'aide d'Apache Commons VFS.
9

SSH (Standard)

Localise les fichiers Ivy et les artefacts sur des référentiels accessibles via SSH.
dix

SFTP (Standard)

Localise les fichiers Ivy et les artefacts sur des référentiels accessibles via SFTP.
11

Jar (Standard)

Localise les fichiers Ivy et les artefacts sur les référentiels dans un fichier jar.
12

Chain (Composite)

Délègue la recherche à une chaîne de sous-résolveurs.
13

Dual (Composite)

Délègue la recherche à un résolveur et les artefacts à un autre.
14

OBR (Standard)

Résolvez les modules en tant que bundles OSGi répertoriés par un OSGi obr.xml.
15

Eclipse updatesite (Standard)

Résolvez les modules en tant que bundles OSGi hébergés sur un site de mise à jour Eclipse.
16

OSGi-agg (Composite)

Délègue la recherche à une chaîne de sous-résolveurs prenant en charge les bundles OSGi.

Créons Tester.java, build.xml et ivy.xml dans un nouveau projet sous E: > ivy2dossier similaire à celui décrit dans le chapitre IVY - Résoudre la tâche . Créez un dossier de paramètres sousE: > ivy2. Créez le fichier ivysettings.xml dans le dossier des paramètres.

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>

Ici, nous avons ajouté deux dépendances, une de la bibliothèque commons-lang et une autre en tant que test que nous avons publié dans le chapitre IVY - Publish Task .

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>

Ici, nous avons ajouté créé un résolveur composite utilisant le résolveur de chaîne qui a deux résolveurs, une librairie nommée pour localiser les bibliothèques sur le référentiel local et une nommée ibiblio sur le référentiel public maven.

Construire le projet

Comme nous avons tous les fichiers prêts. Allez simplement sur la console. Aller versE: > ivy2 dossier et exécutez la commande ant.

E:\ivy > ant

Ivy entrera en action, résolvant les dépendances, vous verrez le résultat suivant.

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;[email protected]
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

Dans les journaux, vous pouvez vérifier que nous avons utilisé des résolveurs de référentiels locaux et publics.