2016-11-18 92 views
2

我需要添加一个罐子说 (可在maven中央回购)。但是这是用Java 8编译的。我使用java 7,因此我得到主要次要版本错误查找Maven依赖关系的顺序是什么?

由于项目是开源的,可在GitHub上获得。我在pom.xml的maven编译器插件中更改java版本之后,本地构建它。它为我工作。

现在我把这个jar上传到本地的Nexus仓库。

这里查找的顺序是什么。由于具有相同名称的jar在Maven中央仓库中可用。在构建我的项目时,是从当地联系人或maven中央回购中挑选出来的这个jar吗?

回答

2

您的本地缓存(~/.m2/repository)的优先级最高,然后取决于您的pom.xml或您的~/.m2/settings.xml中声明的存储库的顺序。 Maven中心被隐式添加为最后一个(afaik)。

因此,如果您将本地Nexus回购添加到该pom声明中,则应该没问题。

此外,您可以覆盖中心存储库由您自己描述here,但我不会建议。

2

您不应该使用相同的版本号重新部署它。永远不会覆盖Maven中非工件的快照发布。即使您所做的只是更改编译源代码的版本,但您实际上正在创建一个新的工件。

尽管如此,您确实有选择来支持您正在做的事情。您可以使用

  • 使用特定于您的工件的不同组和/或工件ID进行部署。
  • 使用相同的工件/组/版本进行部署,但使用分类器(以java8为例)。使用分类器可以将其他工件部署在相同的名称空间中。

这些选项中的任何一个都不会让您担心查找顺序,而这不是您完全控制的。

+0

有效点... !! –