- Apache IVY Tutorial
- Apache IVY - Home
- Apache IVY - Overview
- Apache IVY - Environment Setup
- Apache IVY - Terminology
- Apache IVY - Settings File
- Apache IVY - Eclipse Ivy Plugin
- ANT Ivy Tasks
- Apache IVY - resolve
- Apache IVY - install
- Apache IVY - retrieve
- Apache IVY - cachepath
- Apache IVY - publish
- Apache IVY - info
- Repositories
- Apache IVY - Resolvers
- Apache IVY - Local Repository
- Apache IVY - Shared Repository
- Apache IVY - Public Repository
- Apache IVY Useful Resources
- Apache IVY - Quick Guide
- Apache IVY - Useful Resources
- Apache IVY - Discussion
Apache IVY - Publish Task
publish task is used to publish current artifacts and its resolved descriptor files to mentioned repository.
Let's create Tester.java, build.xml and ivy.xml as described in IVY - Resolve Task chapter.
Update the build.xml to use the ivy publish task. First we'll create a jar file and then publish it.
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>
Following are the important terms.
resolver − resolver to be used for publication.
pattern − pattern to locate the artifact.
Here publish task first build the jar, then resolve the dependencies, set the information and then publish the artifact to local repository.
Building the project
As we've all the files ready. Just go the console. Navigate to E: > ivy folder and run the ant command.
E:\ivy > ant publish
Ivy will come into action, resolving the dependencies, you will see the following result.
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
You can verify the publish ivy artifacts in local repository.