Ivy is a dependency resolution tool, especially designed for use with Ant.

For a given module…

  • You define a set of configurations, each configuration is a group of dependencies.
    • Configurations can extend from other configurations: it's a hierarchy.
  • You define one or more publications, each is an artifact, conditionally generated — dependending on the configuration.
  • You also specify dependencies (on other modules), again conditionally included — based on the configuration.
    • You can decorate a given dependency by specifying that THIS module's conf, say "noexternaljar", maps to a configuration of the dependency module, say "homemade-impl".
    • Another way to say it is, the "conf" property of a dependency further specifies how a configuration of THIS module is dependency on a specific configuration of the dependency module.

Key Ideas:

  • You express dependencies on modules, not artifacts.
  • Use configurations to properly group artifacts, consider these flavors of a module.
  • Use configuration mappings within a dependency declaration to grab the right flavor of a module.
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License