这是我的pom.xml(片段):

...
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>[3.0,)</version>
</dependency>
...

这是mvn告诉我的:
Couldn't find a version in [3.2.0.cr2, 3.2.0.ga, 3.3.1.ga] to match range [3.0,)

为什么?

最佳答案

Hibernate使用的旧X.Y.Z.ga命名方案(有关新的JBoss约定,请参阅this page)没有遵循Maven的格式,因此可能无法与版本比较算法配合使用。引用Version number rules:



该算法在Dependency Mediation and Conflict Resolution中进行了详细说明:



总结:

  • 3.2.0.cr2、3.2.0.ga,3.3.1.ga被视为限定符(即它们以某种方式变为0.0.0-3.2.0.cr2等)
  • 知道了这一点,您也许可以使用[0.0.0-3.0,)范围来愚弄Maven。
  • 但这会比期望的版本(例如2.x)匹配更多版本,因此请注意意外的副作用。

  • 实际上,我的建议是根本不使用版本范围,因为它们对可复制的版本不利。

    也可以看看
  • Dependency Version Ranges
  • Improve default support for version schemes
  • 09-30 14:31
    查看更多