2016-11-18 90 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

有效點... !! –