考虑到在官方文档中很难找到任何关于依赖版本范围的东西(我能想到的最好的是http://docs.codehaus.org/display/MAVEN/Dependency+Mediation+and+Conflict+Resolution),我想知道他们是否仍然被视为Maven POMs的一等公民。
我想大多数人都会同意这是一种糟糕的做法,但我想知道为什么很难找到关于它的任何官方信息。
发布于 2011-08-24 10:34:40
它们不会在正式意义上被弃用,因为它们将在未来的版本中被删除。然而,它们的局限性(以及随后的缺乏广泛采用)意味着它们并不像最初预期的那样有用,而且如果没有重大的重新思考,它们也不太可能得到改进。
这就是为什么文档只以设计文档的形式存在-它们是存在的,但重要的用例从来没有完成到我建议一般使用它们的程度。
如果你有一个目前可以工作的用例,并且可以适应这些限制,你可以期待它们在可预见的未来继续工作,但除此之外几乎没有什么工作在进行中。
发布于 2011-08-24 15:19:22
我不知道您为什么认为版本范围没有文档记录。在Maven Complete Reference文档中有一个具体的摘要。
然而-一个巨大的问题(在我看来)是有文档记录的,“依赖范围的解析不应该解析到快照(开发版本),除非它被包含在显式的边界中。”(您提供的链接),但是系统的行为不同。如果您使用版本范围,您将获得快照版本(如果它们存在于您的范围(MNG-3092)中)。这是不是想要的讨论还没有结束。
当前-如果您使用版本范围-您可能会得到快照依赖项。所以你真的要小心,决定这是不是需要的。它可能对您自己开发的开发有用,但我怀疑您是否应该将其用于第三方库。
发布于 2012-04-30 17:25:24
版本范围是Maven仍然有用的唯一原因。即使考虑不使用它们也是一种糟糕的做法,因为它会导致多模块构建的灾难,非功能性的父pom,需要10分钟或更长时间的构建,结构糟糕的项目,如Spring,Hibernate和Wicket,因为我们在我们的非法参数播客中进行了报道。
为了回答您的问题,它们没有被弃用,并且在许多项目中被成功地积极使用(当Sonatype允许损坏的元数据进入Apache Maven Central时除外)。
如果您想要一个广泛使用版本范围的非多模块构建(仅限reactor.xml)的好例子,请查看粘滞代码(http://code.google.com/p/stickycode/)。
https://stackoverflow.com/questions/7167250
复制相似问题