Skip navigation.

Configuration

In order to work as you want, ivy need some configuration. Actually, ivy can work with no configuration at all, see the default configuration documentation for details about that. But ivy is able
to work in very different contexts. You just have to configure it properly.

Configuration is done through an xml file, usually called ivyconf.xml. To configure ivy from ant, you just have to call the configure task and pass it the path to your configuration file (see configure task documentation for details).

Here is an example of configuration file :

<ivyconf>
        <properties file="${ivy.conf.dir}/ivyconf-file.properties" />
        <conf defaultCache="${cache.dir}" defaultResolver="ibiblio" checkUpToDate="false" />
        <resolvers>
                <ibiblio name="ibiblio" />
                <filesystem name="internal">
                        <ivy pattern="${repository.dir}/[module]/ivy-[revision].xml" />
                        <artifact pattern="${repository.dir}/[module]/[artifact]-[revision].[ext]" />
                </filesystem>
        </resolvers>
        <modules>
                <module organisation="jayasoft" name=".*" resolver="internal" />
        </modules>
</ivyconf>



Mainly, the configuration enables to configure the default cache directory used by ivy and the dependency resolvers that it will use to resolve dependencies.
Note: To work, this configuration file needs a property file named ivyconf-file.properties in the same directory as the configuration file, with ivy variables you want in it.

Some useful variables are available in ivyconf files:

  • ivy.conf.dir
  • this variable references the directory in which the ivyconf itself is. This is available if the ivyconf has been loaded as a file. In case of an url, it takes the part before the last slash of the url, if any. If the url has no slash, then this variable is not set.

  • ivy.conf.file
  • the path of the ivyconf file itself, it has been loaded as a file only. If it has been loaded as an url, this variable is not set

  • ivy.conf.url
  • the url pointing to the ivyconf file. This is set both when it has been loaded as a file or an url

since 1.4 Note that all java system properties are available as ivy variables in your configuration file.

Configuration file structure

The configuration file is structured in some parts and left other open. Indeed each resolver has its own
structure, thus it's not the configuration file itself which define the structure for the resolvers.

ivyconf
    property
    properties
    conf
    include
    classpath
    typedef
    latest-strategies
    version-matchers
    triggers
    parsers
    conflict-managers
    outputters
    namespaces
        namespace
            rule
                fromsystem
                    src
                    dest
                tosystem
                    src
                    dest
    macrodef
        attribute
        any resolver
    resolvers
        any resolver
    modules
        module
    statuses
        status

ivyconf

Tag: ivyconf

Root tag of any ivyconf file.

Child elements

Element Description Cardinality
property set an ivy variable 0..n
properties loads a properties file as ivy variables 0..n
conf configures ivy with some defaults 0..1
include includes another ivyconf file 0..n
classpath add a location in the classpath used to load plugins 0..n
typedef defines new types in ivy 0..n
latest-strategies defines latest strategies 0..1
parsers defines module descriptor parsers 0..1
version-matchers defines new version matchers 0..1
triggers register triggers on ivy events 0..1
namespaces defines new namespaces 0..1
macrodef defines a new macro resolver 0..n
resolvers defines dependency resolvers 0..1
conflict-managers defines conflicts managers 0..1
modules defines rules between modules and dependency resolvers 0..1
outputters defines the list of available report outputters 0..1
statuses defines the list of available statuses 0..1