retrieve

This is a post resolve task, with all the behaviour and attributes common to all post resolve tasks.

since 1.4 This task can even be used to synchronize the destination directory with what should actually be in according to the dependency resolution. This means that by setting sync="true", Ivy will not only copy the necessary files, but it will also remove the files which do not need to be there.

The synchronisation actually consists in deleting all filles and directories in the root destination directory which are not required by the retrieve.

The root destination directory is the the directory denoted by the first level up the first token in the destination pattern.Example:pattern: lib/[conf]/[artifact].[ext]root: lib

since 2.3 A nested mapper element can be used to specify more complex filename transformations of the retrieved files. See the examples below.

Attribute

Description

Required

pattern

the pattern to use to copy the dependencies

No. Defaults to ${ivy.retrieve.pattern}

ivypattern

the pattern to use to copy the ivy files of dependencies since 1.3

No. Dependencies ivy files are not retrieved by default.

conf

a comma separated list of the configurations to retrieve

No. Defaults to the configurations resolved by the last resolve call, or * if no resolve was explicitly called

sync

true to synchronize the destination, false to just make a copy since 1.4

No. Defaults to false

type

comma separated list of accepted artifact types since 1.4

No. All artifact types are accepted by default.

overwriteMode

option to configure when the destination file should be overwritten if it exist (since 2.2.0).Possible values are:

newer (default)

overwrite the destination file if a more recent one is available (based on timestamp)

different

overwrite the destination file if the timestamp is different

always

always overwrite the destination file

never

never overwrite the destination file

No. Defaults to 'newer'.

symlink

true to create symbolic links, false to copy the artifacts. The destination of the symbolic links depends on the value of the useOrigin attribute (since 2.0)

No. Defaults to false

settingsRef

A reference to the ivy settings that must be used by this task (since 2.0)

No, 'ivy.instance' is taken by default.

log

the log setting to use during the resolve and retrieve process. (since 2.0)
Available options are the same as for resolve when used to trigger resolve automatically (see postresolvetask), or the following for the retrieve process only:

default

the default log settings, where all usual messages are output to the console

the id of the path to create containing the retrieved artifacts. since 2.3

No. No path is created by default.

setId

the id of the fileset to create containing the retrieved artifacts. since 2.3

No. No fileset is created by default.

Examples

<ivy:retrieve />

Retrieves dependencies using default parameters. This usually retrieves all the dependencies of the last resolve call to a lib directory.

<ivy:retrieve pattern="${lib.dir}/[conf]/[artifact].[ext]"/>

Retrieves all dependencies of the last resolve call to a lib directory, dependencies being separated in directories named by configuration, each conf directory containing corresponding artifacts without the revision.For instance, if the ivy file declares two configurations default and test, the resulting lib dir could look like this:

lib default commons-lang.jar commons-logging.jar test junit.jar

Note that if a dependency is required in the two configurations, it will be copied in the two directories. The download of the dependency is however only made once at resolve time.

Retrieves all dependencies of the last resolve call to a lib directory. The jar files with a version equal to 'SNAPSHOT' are retrieved in a 'snapshots' directory. The other ones are retrieved in a 'releases' directory.