首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否应该认为Maven依赖项版本范围已被弃用?

是否应该认为Maven依赖项版本范围已被弃用?
EN

Stack Overflow用户
提问于 2011-08-24 04:39:17
回答 3查看 2.8K关注 0票数 13

考虑到在官方文档中很难找到任何关于依赖版本范围的东西(我能想到的最好的是http://docs.codehaus.org/display/MAVEN/Dependency+Mediation+and+Conflict+Resolution),我想知道他们是否仍然被视为Maven POMs的一等公民。

我想大多数人都会同意这是一种糟糕的做法,但我想知道为什么很难找到关于它的任何官方信息。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-24 10:34:40

它们不会在正式意义上被弃用,因为它们将在未来的版本中被删除。然而,它们的局限性(以及随后的缺乏广泛采用)意味着它们并不像最初预期的那样有用,而且如果没有重大的重新思考,它们也不太可能得到改进。

这就是为什么文档只以设计文档的形式存在-它们是存在的,但重要的用例从来没有完成到我建议一般使用它们的程度。

如果你有一个目前可以工作的用例,并且可以适应这些限制,你可以期待它们在可预见的未来继续工作,但除此之外几乎没有什么工作在进行中。

票数 9
EN

Stack Overflow用户

发布于 2011-08-24 15:19:22

我不知道您为什么认为版本范围没有文档记录。在Maven Complete Reference文档中有一个具体的摘要。

然而-一个巨大的问题(在我看来)是有文档记录的,“依赖范围的解析不应该解析到快照(开发版本),除非它被包含在显式的边界中。”(您提供的链接),但是系统的行为不同。如果您使用版本范围,您将获得快照版本(如果它们存在于您的范围(MNG-3092)中)。这是不是想要的讨论还没有结束。

当前-如果您使用版本范围-您可能会得到快照依赖项。所以你真的要小心,决定这是不是需要的。它可能对您自己开发的开发有用,但我怀疑您是否应该将其用于第三方库。

票数 7
EN

Stack Overflow用户

发布于 2012-04-30 17:25:24

版本范围是Maven仍然有用的唯一原因。即使考虑不使用它们也是一种糟糕的做法,因为它会导致多模块构建的灾难,非功能性的父pom,需要10分钟或更长时间的构建,结构糟糕的项目,如Spring,Hibernate和Wicket,因为我们在我们的非法参数播客中进行了报道。

为了回答您的问题,它们没有被弃用,并且在许多项目中被成功地积极使用(当Sonatype允许损坏的元数据进入Apache Maven Central时除外)。

如果您想要一个广泛使用版本范围的非多模块构建(仅限reactor.xml)的好例子,请查看粘滞代码(http://code.google.com/p/stickycode/)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7167250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档