Apache IVY - Tâche d'information
La tâche info est utilisée pour définir des informations spécifiques à Ivy dans un fichier et peut être utilisée sans aucune résolution de dépendance.
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. Avant de publier la tâche, nous avons défini les informations requises sur le lierre à l'aide de la tâche d'information.
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>
Ici, la tâche de publication commence par créer le jar, puis définissez les informations à l'aide de la tâche ivy: info, 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.
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
Si nous ne mettons pas la tâche d'information, la tâche de publication ne fonctionnera pas. Utilisez le build.xml modifié ci-dessous et voyez l'erreur pour l'attribut d'organisation manquant et ainsi de suite.
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>
Aller vers E: > 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.
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