Dependency configuration
Java has no real support for working with versioned libraries as dependencies. We cannot express in Java whether our class depends on lib-1.0.jar
or lib-2.0.jar
, for example. There are some open source solutions that deal with dependencies and allow us to express whether our Java code depends on lib-1.0.jar
or lib-2.0.jar
. The most popular are Maven and Apache Ivy. Maven is a complete build tool and has a mechanism for dependency management. Ivy is only about dependency management.
Both tools support repositories where versioned libraries are stored, together with metadata about those libraries. A library can have dependencies on other libraries and is described in the metadata of the library. The metadata is described in descriptor XML files. Ivy fully supports Maven descriptor files and repositories; it also adds some extra functionality. So with Ivy, you get what you would with Maven, and then some more. That is why Gradle uses the Ivy API under the hood to do...