2017-10-05 37 views
1

我有一個maven項目,我只是改變了我的spring-data-neo4j依賴版本。如何匹配Maven的groudId發佈版本

它具有:

<dependency> 
     <groupId>org.springframework.data</groupId> 
     <artifactId>spring-data-commons</artifactId> 
     <version>1.12.0.RELEASE</version> 
    </dependency> 

<dependency> 
     <groupId>org.springframework.data</groupId> 
     <artifactId>spring-data-neo4j</artifactId> 
     <version>5.0.0.RELEASE</version> 
    </dependency> 

這是以前

<dependency> 
     <groupId>org.springframework.data</groupId> 
     <artifactId>spring-data-neo4j</artifactId> 
     <version>4.1.3.RELEASE</version> 
    </dependency> 

所以,我得到一個錯誤:

[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.4.1.RELEASE:run (default-cli) on project myproject: An exception occurred while running. null: InvocationTargetException: org.springframework.data.repository.config.RepositoryConfigurationSource.getAttribute(Ljava/lang/String;)Ljava/util/Optional; -> [Help 1] 

這是因爲(我認爲)我的2依賴關係具有相同的groupId,但不要從組的相同版本拉。

問題

我怎麼知道,我應該使用哪一種版本spring-data-commons匹配5.0.0版本的spring-data-neo4j

UPDATE

我剛好想版本噸,直到錯誤走了固定我的問題。這不是一個真正的答案,但我的問題現在已經消失了。

+0

請福進一步編輯您的更新或爲未來的讀者提供答案,本網站的目標不是解決您的問題,而是讓未來具有類似問題的讀者也能解決問題。沒有人會知道如何解決這個問題,如果他們發現這個問題 – Tyler

回答

1

的問題是在你的pom.xml

只定義彈簧數據的Neo4j 5.0.0.RELEASE分別定義彈簧數據公共1.12.0.RELEASE作爲依賴會傳遞地得到你的歸屬版本的spring-data-commons是2.0.0.RELEASE,但是如果你還單獨定義了較老的spring-data-commons 1.12.0.RELEASE,那麼它將覆蓋更新的傳遞依賴版本,並且會導致有經驗的問題;可能是因爲Neo4j的新版本將嘗試使用彈簧數據公共API已經版本1.12.0.RELEASE和2.0.0.RELEASE

之間變化見mvn dependency:tree打印輸出的相關部分

定義彈簧數據的Neo4j 5.0.0.RELEASE只

[INFO] +- org.springframework.data:spring-data-neo4j:jar:5.0.0.RELEASE:compile 
[INFO] +- org.springframework.data:spring-data-commons:jar:2.0.0.RELEASE:compile 

定義彈簧數據的Neo4j 5.0.0.RELEASE也彈簧數據公共1.12.0.RELEASE

[INFO] +- org.springframework.data:spring-data-commons:jar:1.12.0.RELEASE:compile 
[INFO] +- org.springframework.data:spring-data-neo4j:jar:5.0.0.RELEASE:compile 
      (...no transitive spring-data-commons:jar here) 
相關問題