2012-07-11 48 views
1

我们将所有源代码的从属第三方JAR与我们的源代码一起检入源代码控制。在需要时,我们手动将更新下载到第三方JAR,并用新版本替换那些源代码管理的JAR。我们还没有觉得需要使用Maven,因为这个过程对我们来说似乎很简单。但是我们是否因为不使用Maven而错失了一些有价值的东西?或者我们的方案不保证使用Maven?当依赖源代码签入时使用Maven是否仍然有意义?

+0

Maven会删除需要你通过管理第三方jar文件的依赖检查罐子。 – Reimeus 2012-07-11 18:42:17

+0

除此之外的任何东西?由于JARs没有太大变化(一年最多几次),因此我的项目中的人员仅仅使用其他代码来检查JAR是一个很好的例子。 – BestPractices 2012-07-11 19:40:33

+0

Maven不需要在第一个实例中搜索每个相关的jar文件。您还需要更新到新版本以利用新功能,Maven将在您的POM中指定新版本后自动下载这些jar。 – Reimeus 2012-07-11 19:53:12

回答

4

“的JAR不要有太大变化”,我听到这一切的时候.....

在SCM存储罐是在项目的开始简单。随着时间的推移,罐子的数量会越来越大....等待2到3年,没有人记得罐子来自哪里,他们的许可条款是什么,最常用的是什么版本(在分析安全漏洞时很重要) .....

我读过最近作出的情况下对一个仓库管理的最好的文章是:

有点irreverant,但做出一个有效点人们一直遇到的那种技术惯性。

将项目团队从ANT切换到Maven可能会很可怕.... Maven的工作方式完全不同,所以我发现它最好与绿地或冒险项目团队一起部署。对于老派ANT用户,我推荐使用Apache ivy插件。常春藤允许这样的团队外包他们的依赖管理,但保留他们熟悉的构建技术。

最终,使用Maven的最大好处不是依赖管理。这是独立的构建过程。我见过几次尝试创建“标准”ANT构建过程的失败尝试。每个构建工程师都会对标准应该是什么提出自己的看法。Maven强制用户编写构建插件的方法在开始时可能会出现限制,但就像iPhone最终开发人员发现“这里有一个Maven插件”: - )

+0

不错的答案,谢谢 – BestPractices 2012-07-11 22:46:23

1

说到依赖管理,Maven确实可能非常有价值。正如Mark O'Connor所建议的那样,运行本地资源库管理器可能比将工件检入源代码管理更好。

有许多工具(如eclipse中的m2e)可以帮助依赖管理,并提供有关哪些模块或依赖关系需要哪些其他依赖关系的宝贵反馈。即使不同的模块依赖于给定库的不同版本,Maven也会确保获得相应的依赖版本。这将有助于防止部署项目中出现同一个jar的重复版本,只要它们具有相同的组和工件标识。

即使是一个非常简单的项目,我不认为我会诉诸检查到源代码管理系统的依赖关系。

+0

很好的答案,谢谢 – BestPractices 2012-07-11 22:46:33

0

这不仅关乎第三方图书馆。大多数情况下,如果你有多个存储库。在我们的例子中,我们有四个存储库,有很多内部和内部依赖关系。 其实我开始这个答案,然后我不得不花15分钟时间与一些同事谈谈在别人的lib目录中忘记更新一个项目的.jar后发生的问题。

它看起来更专业:)

相关问题