java 什么是常春藤?以及它与蚂蚁的关系?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/1992504/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
what is ivy? and how it is related to ant?
提问by GuruKulki
I have seen many ivy files in my application's build projects. What is Ivy, and its relation with ant?
我在我的应用程序的构建项目中看到了许多常春藤文件。什么是常春藤,它与蚂蚁的关系?
采纳答案by skaffman
Ivyis an Ant extension for managing external libraries during the development process, giving you a way of adding them to your classpath, bundling them into your application build, etc.
Ivy是一个 Ant 扩展,用于在开发过程中管理外部库,为您提供一种将它们添加到类路径、将它们捆绑到应用程序构建中等的方法。
There's some overlap with what Maven does, but Ivy is much more lightweight (and doesn't do as much).
与 Maven 的功能有一些重叠,但 Ivy 更轻量级(并且没有做那么多)。
回答by Kaleb Brasee
Ivyis a dependency manager -- it manages and controls the JAR files that your project depends on. If you don't have the JARs, it will pull them down for youby default (from the Maven 2 repository), which can make project setup a lot easier.
Ivy是一个依赖管理器——它管理和控制你的项目所依赖的 JAR 文件。如果您没有 JAR,默认情况下它会为您拉取它们(来自 Maven 2 存储库),这可以使项目设置更容易。
回答by Esko
Ivy is originally a Jayasoft.fr productwhich at that time was under BSD license, however the core of Ivy has always been the same: It's a dependency management tool.
Ivy 最初是Jayasoft.fr 的产品,当时是 BSD 许可下的,但是 Ivy 的核心始终是相同的:它是一个依赖项管理工具。
Ivy's relation to Ant is that it is an Ant extension in the sense that it is through Ant, however it doesn't really depend on it (beyond the obvious parts). Ivy was merged into an Apache project under Ant as subproject through incubation process on October 11, 2007.
Ivy 与 Ant 的关系在于它是 Ant 的扩展,因为它是通过 Ant 的,但是它并不真正依赖于它(除了明显的部分)。Ivy于2007年10月11日通过孵化过程并入Ant下的Apache项目作为子项目。
Very common misconception people have is that they compare Ivy with Maven as a whole. However that doesn't really work since Ivy only handles dependencies in an agile manner and is very good at it with simplistic configuration and wide automated support with various build systems etc. through Ant while Maven really is a build system in itself. Personal opinions may and do differ in which one does what best and that is worth several Stackoverflow/Google searches on its own.
人们非常普遍的误解是,他们将 Ivy 与 Maven 作为一个整体进行比较。然而,这并没有真正起作用,因为 Ivy 只以敏捷的方式处理依赖关系,并且非常擅长通过 Ant 进行简单的配置和广泛的自动化支持,而 Maven 本身确实是一个构建系统。个人意见可能也确实有所不同,哪一个做得最好,这本身就值得多次 Stackoverflow/Google 搜索。
回答by AlexeiOst
I believe these are significant and useful points to add:
我相信这些是重要且有用的补充点:
- Ivy can be used standalone from command line without Ant. If your CI environment does not include Ant it will not preclude you from using Ivy. Yes, integration with Ant is nice and, by far, better documented. One could apply Ant integration documentation to standalone usage though.
- Ivy is not just for Java. My team successfully uses it to define dependencies for a fairly large .NET project (10 interdependent packages with several versions of each in production with multiple third party upstream dependencies). Works quite well. I wish documentation were a bit clearer and fuller.
- There are additional perks that Ivy offers for Build Time: upstream and downstream builds triggering.
- Ivy 可以在没有 Ant 的情况下从命令行独立使用。如果您的 CI 环境不包含 Ant,它不会阻止您使用 Ivy。是的,与 Ant 的集成很好,而且到目前为止,有更好的文档记录。不过,可以将 Ant 集成文档应用于独立使用。
- Ivy 不仅仅适用于 Java。我的团队成功地使用它来定义一个相当大的 .NET 项目的依赖项(10 个相互依赖的包,每个包的多个版本在生产中具有多个第三方上游依赖项)。效果很好。我希望文档更清晰、更完整。
- Ivy 为构建时间提供了额外的好处:上游和下游构建触发。

