55

我知道这是一个复杂的问题,但我想知道在系统已经投入生产的情况下哪个更好,有很多错误和非常糟糕的设计。真是一团糟。

实际上,我问这个是因为我已经将这个项目转换为 Maven 并且我面临很多问题。我需要调整文件夹结构,将公司制作的糟糕框架从项目中分离出来(它被转换为 jar lib),修复了很多一直破坏项目的细节,配置 POM.xml 以完成所有工作Ant 已经在做并发现应用程序中真正使用的库作为它们的版本(很大一部分库被重命名而没有版本号,并且清单文件是空的)。

嗯,那真是地狱。在这个任务中我发疯了,一直跟着我的问题是“如果我把它转换成常春藤?会更容易吗?”。

我从未与 Ivy 合作过,但据我所知,它与 Ant 合作,而且它比 Maven 更容易适应项目。另一方面,Maven 更多地使用了这个词(我错了吗?),这应该是有原因的!

所以这是我的问题:

  • 与 Jenkins / Hudson 集成:使用 Ivy 和使用 Maven 一样简单吗?
  • 声纳插件:上面的问题相同。集成很简单吗?
  • Eclipse 插件:这是 Maven 的一个非常薄弱的​​地方。插件很糟糕,但我不知道常春藤的。
  • 部署过程:一旦配置好所有东西,使用 maven 部署和发布项目就非常容易。和常春藤?
  • 转换:嗯,我将项目转换为 Maven 的经验很糟糕,但系统没有帮助。我的选择是 Maven 对新项目来说是惊人的,自创建以来就使用 Maven 的项目,但如果你有一个大而无组织的项目,这不是一个好的选择。我错了吗?
  • 插件:需要在 POM.xml 中配置很多插件。常春藤有这么多选择吗?
  • 人气:哪个更受欢迎?哪个更常用,为什么?

嗯,就是这个。非常感谢!

4

1 回答 1

82

首先,阅读 Ivy 网站上的Ivy / Maven 比较。关键信息:

首先,最重要的区别是它们根本不是同一种工具。Apache Maven 是一个软件项目管理和理解工具,而 Apache Ivy 只是一个依赖管理工具,与流行的构建管理工具 Apache Ant™ 高度集成。因此,也许更有趣的比较是将 Apache Ant+Ivy 与 Apache Maven 进行比较。但这超出了本页面的范围,该页面仅关注依赖管理。

Ivy 为 Ant 添加了依赖管理功能,所以实际上,关于您使用什么构建系统的问题是:

  • 使用常春藤/蚂蚁
  • 迁移到 Maven

如果您的构建已经使用 Ant,Ivy 将是一个更容易的过渡,因为您的构建脚本不需要移植到不同的构建系统。

如果您决定过渡到 Maven,则需要付出更多努力,因为您需要重写构建脚本和 Mavenize 一切,以及配置您的依赖管理。

如果您决定朝那个方向发展,那么将您的依赖管理配置从 Ivy/Ant 移植到 Maven 也会更容易。所以从长远来看,Ivy 依赖管理将是一个很好的 Maven 配置的垫脚石。

于 2013-03-22T03:36:16.253 回答