27

我在应用程序的构建项目中看到了许多 ivy 文件。什么是常春藤,它与蚂蚁的关系?

4

4 回答 4

24

Ivy是一个 Ant 扩展,用于在开发过程中管理外部库,为您提供一种将它们添加到类路径、将它们捆绑到应用程序构建等的方法。

与 Maven 所做的有一些重叠,但 Ivy 更轻量级(并且没有那么多)。

于 2010-01-02T19:13:07.587 回答
9

Ivy是一个依赖管理器——它管理和控制您的项目所依赖的 JAR 文件。如果您没有 JAR,默认情况下它会为您提取它们(来自 Maven 2 存储库),这可以使项目设置更加容易。

于 2010-01-02T19:13:37.260 回答
7

Ivy 最初是一个Jayasoft.fr 产品,当时是在 BSD 许可下,但 Ivy 的核心一直是一样的:它是一个依赖管理工具

Ivy 与 Ant 的关系是,它是通过 Ant 的某种意义上的 Ant 扩展,但是它并不真正依赖于它(除了明显的部分)。Ivy 于 2007 年 10 月 11 日通过孵化过程并入 Ant 下的一个 Apache 项目作为子项目。

人们非常普遍的误解是他们将 Ivy 与 Maven 作为一个整体进行比较。然而这并没有真正起作用,因为 Ivy 只以敏捷的方式处理依赖关系,并且非常擅长通过 Ant 进行简单的配置和对各种构建系统等的广泛自动化支持,而 Maven 本身就是一个构建系统。个人意见可能会而且确实会有所不同,其中一个做得最好,而这值得自己进行几次 Stackoverflow/Google 搜索。

于 2010-01-02T20:06:16.233 回答
4

我相信这些是重要且有用的补充点:

  • Ivy 可以在没有 Ant 的情况下从命令行独立使用。如果您的 CI 环境不包含 Ant,它不会阻止您使用 Ivy。是的,与 Ant 的集成很好,而且到目前为止,文档记录得更好。不过,可以将 Ant 集成文档应用于独立使用。
  • Ivy 不仅仅适用于 Java。我的团队成功地使用它为一个相当大的 .NET 项目定义了依赖项(10 个相互依赖的包,每个包都有多个版本,每个包都有多个第三方上游依赖项)。效果很好。我希望文档更清晰、更完整。
  • Ivy 为构建时间提供了额外的好处:上游和下游构建触发。
于 2011-07-08T15:11:55.907 回答