Generated by GPT-5-mini| Ivy (Apache) | |
|---|---|
| Name | Ivy |
| Developer | Apache Software Foundation |
| Initial release | 2004 |
| Latest release | 2.5.0 |
| Programming language | Java |
| Platform | Java Virtual Machine |
| License | Apache License 2.0 |
| Website | https://ant.apache.org/ivy/ |
Ivy (Apache) Ivy is a dependency management tool for the Java Virtual Machine ecosystem, developed under the Apache Software Foundation. It integrates with Apache Ant and complements build systems and repository managers used across projects in organizations such as Apache Software Foundation, Eclipse Foundation, Spring Framework, Hibernate, and enterprise environments at companies like Google, Netflix, Facebook, and Amazon. Ivy emphasizes flexible dependency declaration, transitive resolution, and repository interoperability.
Ivy was created to address limitations experienced by developers using Apache Ant and early versions of Apache Maven in the mid-2000s, with contributors from projects such as Jakarta Project and developers familiar with Ant's XML. Early adoption occurred alongside Apache Maven 2 and appeared in toolchains alongside repository managers like Nexus Repository Manager and Artifactory. Over time Ivy influenced and was influenced by dependency innovations in Maven Central, Gradle, SBT (software), Buck (build system), and Bazel, shaping transitive dependency semantics and conflict resolution policies reflected in subsequent build tools. Community governance and releases have been coordinated through Apache Software Foundation processes and incubator practices linked to other ASF projects.
Ivy provides declarative dependency configuration, conflict management, and repository interoperability supporting formats and services like Maven Central, Ivy repository layout, Ivy patterns, and HTTP/FTP/Filesystem access. It supports artifact metadata models compatible with Maven POMs and can interpret Apache Maven repositories and integrate with OSGi bundles. Ivy includes features for version ranges, dynamic revisions, and customizable conflict managers inspired by approaches used in Maven and IvyDE tooling for Eclipse (software). The tool exposes an API consumed by build systems and IDEs such as IntelliJ IDEA, Eclipse IDE, and NetBeans, and is scriptable within Apache Ant buildfiles and continuous integration systems like Jenkins and Travis CI.
Ivy's core architecture is implemented in Java (programming language) and composed of resolver, module descriptor, and cache subsystems. Resolvers support patterns and transport protocols understood by Maven and repository managers such as Sonatype Nexus and JFrog Artifactory. Module descriptors (ivy.xml) declare dependencies similar to formats used by Maven POM and can be generated by tools like IvyDE and imported by Gradle converters. The cache subsystem aligns with concepts used in Maven Local Repository and Gradle cache to reduce network access. Ivy exposes an API used by projects like Apache Ant tasks, Eclipse ADE plugins, and third-party integrations with SBT (software) adapters and Buildr.
Ivy is typically invoked from Apache Ant buildfiles, with tasks that declare resolve, retrieve, publish, and report actions interoperable with Nexus Repository Manager, Artifactory, and Maven Central. Teams integrate Ivy in continuous integration pipelines managed by Jenkins, TeamCity, Travis CI, and GitHub Actions, and in dependency workflows alongside Maven and Gradle ecosystems. IvyDE provides IDE integration for Eclipse (software), while community plugins exist for IntelliJ IDEA and NetBeans. Enterprises often combine Ivy with repository managers like Sonatype Nexus to implement promotion workflows compatible with release engineering practices used by organizations such as Red Hat and Canonical (company).
Ivy's performance characteristics depend on resolver strategy, cache configuration, and network latency to repositories such as Maven Central and private Nexus Repository Manager instances. Ivy implements caching and local artifact storage analogous to Maven Local Repository and supports parallel resolution strategies used in modern build tools like Gradle and Bazel (build system). Scalability in large monorepos or microservice architectures is addressed by combining Ivy with repository managers, CDN-backed artifact storage used by Cloudflare and Fastly, and CI/CD optimizations practiced by Google and Netflix to reduce redundant resolution and improve throughput.
Ivy is licensed under the Apache License version 2.0, aligning with policies used by many Apache Software Foundation projects and compatible with ecosystems relying on permissive licensing such as Linux Foundation projects. Security considerations include transitive dependency audits, signature verification and checksum validation comparable to mechanisms used in Maven and Gradle, and repository access controls enforced by Sonatype Nexus and JFrog Artifactory. Organizations employing Ivy adopt dependency scanning and governance solutions from vendors like Snyk, Sonatype, and WhiteSource (Mend) to manage vulnerabilities and licensing compliance.