Generated by GPT-5-mini| Apache Ivy | |
|---|---|
| Name | Apache Ivy |
| Developer | Apache Software Foundation |
| Released | 2004 |
| Latest release version | 2.5.1 |
| Programming language | Java (programming language) |
| Operating system | Cross-platform |
| License | Apache License |
Apache Ivy is a transitive dependency manager designed for Java (programming language) projects that integrates with Ant and other build tools to resolve, retrieve, and manage binary artifacts. It provides modular dependency declarations and repository-aware resolution, enabling reproducible builds for projects using libraries hosted on Maven Central Repository, Ivy repository, or private artifact stores. Ivy is developed under the auspices of the Apache Software Foundation and has influenced dependency handling practices across software development ecosystems such as Maven (software), Gradle, and SBT (software).
Ivy focuses on flexible dependency declaration and fine-grained control for projects written in Java (programming language), Groovy (programming language), Scala (programming language), and other JVM languages. It complements build systems like Ant (software) and competes conceptually with Maven (software), offering different approaches to artifact coordinates, conflict resolution, and transitive resolution. Ivy supports integration with repository managers including Nexus (software), Artifactory, and Apache HTTP Server-backed repositories, and interoperates with standards such as the Apache Maven Project’s repository layout.
Ivy provides configurable module descriptors, dependency conflict management, and customizable resolution strategies suitable for enterprise continuous integration pipelines implemented with tools like Jenkins (software), Bamboo (software), and TeamCity. It supports multiple repository types including Ivy repository, Maven Central Repository, and HTTP-served repositories, plus patterns for file and filesystem resolution compatible with SVN, Git (software), and CVS. Ivy implements transitive dependency resolution, exclusion rules, and artifact pattern matching while supporting delivery features used in release management processes practiced by organizations such as Apache Software Foundation projects, Eclipse Foundation, and corporate open-source initiatives.
The Ivy architecture centers on a core resolver engine that processes module descriptors, cache management, and repository access layers. Key components include the Ivy core, which manages dependency graphs akin to algorithms used in Tarjan's algorithm for graph traversal, resource resolvers for protocols like HTTP, FTP, and FTP servers, and a local cache system inspired by design patterns used in Apache Ant and Apache Maven Project. Integration adapters exist for Ant (software), IvyDE (an Eclipse plugin), and third-party connectors for Gradle and SBT (software).
Developers embed Ivy tasks into Ant (software) buildfiles, invoke resolution and retrieve operations, and produce Ant artifacts consumed by IDEs such as Eclipse (software), IntelliJ IDEA, and NetBeans. IvyDE integrates Ivy with Eclipse (software) project classpaths, while build servers like Jenkins (software) call Ivy to ensure reproducible artifact sets across continuous integration nodes. Enterprise deployment pipelines use Ivy with repository managers like Nexus (software) and Artifactory to enforce binary promotion strategies seen in organizations like Red Hat and IBM.
Ivy uses an XML-based ivy.xml descriptor to declare modules, configurations, and dependencies, mirroring the explicit declarations favored by projects such as Apache Ant-based builds. Dependency management supports semantic versioning practices popularized by Semantic Versioning and offers conflict resolution strategies (latest, strict, or forced) akin to policies in Maven (software) and Gradle. Ivy supports exclusion rules to avoid transitive conflicts with libraries like Guava (software library), SLF4J, and Log4j, and can map dependency configurations to multiple artifacts used in multi-module project layouts common in Apache Software Foundation ecosystems.
Ivy development occurs within the Apache Software Foundation incubatory and project governance model, with contributions managed via Git (software) repositories, issue trackers, and mailing lists. The community includes contributors from organizations such as Sony, Oracle Corporation, IBM, and independent open-source contributors. Documentation resources include project websites, mailing list archives, and conference talks at events like ApacheCon and JavaOne (conference), while integrations and plugins are maintained by ecosystem projects including Eclipse Foundation and independent maintainers.
Ivy’s release history spans multiple major and minor versions, with security and bug fixes aligned to Apache Software Foundation release policies. Notable version milestones addressed compatibility with evolving Maven metadata formats, improved SSL/TLS handling to follow IETF recommendations, and cache integrity improvements to mitigate supply-chain risks highlighted by advisories from organizations like Open Web Application Security Project. Releases are signed and published according to Apache Software Foundation practices; security disclosures are coordinated through project security contacts and archived in project communication channels.
Category:Java (programming language) libraries Category:Apache Software Foundation projects