Apache IVY - Tâche de publication

La tâche de publication est utilisée pour publier les artefacts actuels et ses fichiers descripteurs résolus dans le référentiel mentionné.

Créons Tester.java, build.xml et ivy.xml comme décrit dans le chapitre IVY - Resolve Task .

Mettez à jour le fichier build.xml pour utiliser la tâche de publication ivy. Nous allons d'abord créer un fichier jar, puis le publier.

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>

Voici les termes importants.

  • resolver - résolveur à utiliser pour la publication.

  • pattern - motif pour localiser l'artefact.

Ici, la tâche de publication commence par créer le fichier jar, puis résolvez les dépendances, définissez les informations, puis publiez l'artefact dans le référentiel local.

Construire le projet

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

E:\ivy > ant publish

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

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

Vous pouvez vérifier les artefacts de publication de lierre dans le référentiel local.