由于版本中的加号,Maven无法解析依赖性

时间:2015-02-14 00:09:14

标签: maven build gradle

我有一个maven依赖项,它具有版本声明" 19。+",并且maven失败,即使.m2目录中存在与版本20.0相同的依赖项。

我认为版本中的这个加号意味着"获取此版本以上的任何内容"。有什么我想念的吗?

P.S。该版本声明在我的一个依赖项中声明,因此我实际上无法更改它。

1 个答案:

答案 0 :(得分:4)

此语法是常春藤版本范围,Maven不支持。它不应该在中央存储库中的工件中使用,但有一些在强制执行有效版本之前就已经使用了它。

有关详细信息,请参阅Enforcing valid dependency versions

  

E.g。版本16. +具有从16到任何小于17的任何版本的含义。这些可以是例如16.3。使用这样的语法会破坏所有其他构建系统的依赖机制,因此必须避免这种情况。 Android Maven社区的成员已经提醒我们使用此无效语法导致的问题。

     

...

     

我们将强制执行pom中的任何依赖声明的版本都不使用此语法或最新的#39;变形也可能在常春藤。

截至2014年11月(Dependency version range enforcement live on OSSRH ),此政策已生效。您需要转移到该工件的升级版本。正如this post says

  

在改变旧工件方面,对于Central来说,这是一个长期存在的规则   任何修改。因此,如果您遇到使用语法I的工件遇到问题   会敦促大家通知违法者并要求他们修理并发布新版本。